| | |
| | | ///// </summary> |
| | | //public bool DeleteSign = false; |
| | | |
| | | |
| | | protected ResponsePackNew SaveSpatialInfo() |
| | | { |
| | | var pm = new HttpServerRequest(); |
| | | var revPack = new ResponsePackNew(); |
| | | if (string.IsNullOrEmpty(createTime) && string.IsNullOrEmpty(modifyTime)) |
| | | { |
| | | revPack = pm.AddRoom(new List<SpatialInfo>() { this }); |
| | | } |
| | | else if (string.IsNullOrEmpty(createTime) && !string.IsNullOrEmpty(modifyTime)) |
| | | { |
| | | revPack = pm.DeleteRoom(new List<string>() { roomId }); |
| | | } |
| | | else if (!string.IsNullOrEmpty(createTime) && !string.IsNullOrEmpty(modifyTime)) |
| | | { |
| | | revPack = pm.UpdateRoom(new List<SpatialInfo>() { this }); |
| | | } |
| | | return revPack; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 下载云端房间数据 |
| | | /// </summary> |
| | | public void DownloadRoomList() |
| | | { |
| | | new System.Threading.Thread(() => |
| | | { |
| | | var pm = new HttpServerRequest(); |
| | | var pack = pm.GetRoomList(); |
| | | if (pack.Code == StateCode.SUCCESS) |
| | | { |
| | | var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<SpatialApiPack>(pack.Data.ToString()); |
| | | if (revData != null) |
| | | { |
| | | CurrentSpatial.UpdateSpatialList(revData.list, OptionType.Cover); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | MainPage.Log($"读取房间数据失败:\r\nCode:{pack.Code}; msg:{pack.message}"); |
| | | } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新空间信息 |
| | | /// </summary> |
| | | /// <param name="spatials">空间信息</param> |
| | | /// <param name="optionType">操作类型:ADD/UPDATE/DELETE</param> |
| | | public void UpdateSpatialList(List<SpatialInfo> spatials,OptionType optionType) |
| | | public void UpdateSpatialList(List<SpatialInfo> spatials) |
| | | { |
| | | var roomUpdateList = spatials.FindAll((obj) => obj.roomType == "ROOM"); |
| | | var floorUpdateList = spatials.FindAll((obj) => obj.roomType == "FLOOR"); |
| | | //处理房间列表 |
| | | if (roomUpdateList != null && roomUpdateList.Count > 0) |
| | | { |
| | | if (optionType == OptionType.Update) |
| | | CurrentSpatial.DeleteAllRoom(); |
| | | foreach (var newRoom in roomUpdateList) |
| | | { |
| | | foreach (var updateTemp in roomUpdateList) |
| | | { |
| | | var localRoom = CurrentSpatial.RoomList.Find((obj) => obj.roomId == updateTemp.roomId); |
| | | if (localRoom != null) |
| | | { |
| | | if (localRoom.modifyTime != updateTemp.modifyTime) |
| | | { |
| | | localRoom.roomName = updateTemp.roomName; |
| | | localRoom.roomImage = updateTemp.roomImage; |
| | | localRoom.parentId = updateTemp.parentId; |
| | | localRoom.createTime = updateTemp.createTime; |
| | | localRoom.modifyTime = updateTemp.modifyTime; |
| | | localRoom.SaveRoomData(false); |
| | | } |
| | | }else |
| | | { |
| | | updateTemp.SaveRoomData(false); |
| | | } |
| | | } |
| | | } |
| | | else if (optionType == OptionType.Cover) |
| | | { |
| | | CurrentSpatial.DeleteAllRoom(); |
| | | foreach(var newRoom in roomUpdateList) |
| | | { |
| | | newRoom.SaveRoomData(false); |
| | | RoomList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Room>( |
| | | Newtonsoft.Json.JsonConvert.SerializeObject(newRoom))); |
| | | } |
| | | newRoom.SaveRoomFile(); |
| | | RoomList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Room>( |
| | | Newtonsoft.Json.JsonConvert.SerializeObject(newRoom))); |
| | | } |
| | | } |
| | | //楼层房间列表 |
| | | if (floorUpdateList != null && floorUpdateList.Count > 0) |
| | | { |
| | | if (optionType == OptionType.Update) |
| | | FloorList.Clear(); |
| | | foreach (var updateTemp in floorUpdateList) |
| | | { |
| | | foreach(var updateTemp in floorUpdateList) |
| | | { |
| | | var localFloor = FloorList.Find((obj) => obj.roomId == updateTemp.roomId); |
| | | if (localFloor == null) |
| | | { |
| | | FloorList.Add(updateTemp); |
| | | } |
| | | else |
| | | { |
| | | localFloor = updateTemp; |
| | | } |
| | | } |
| | | } |
| | | if(optionType == OptionType.Cover) |
| | | { |
| | | FloorList.Clear(); |
| | | foreach (var updateTemp in floorUpdateList) |
| | | { |
| | | FloorList.Add(updateTemp); |
| | | } |
| | | FloorList.Add(updateTemp); |
| | | } |
| | | var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList)); |
| | | Common.FileUtlis.Files.WriteFileByBytes(dataSavePath, ssd); |
| | |
| | | /// <summary> |
| | | /// 初始化每个房间的功能数据 |
| | | /// </summary> |
| | | public void InitRoomFunction() |
| | | public void InitRoomListFunctions() |
| | | { |
| | | new System.Threading.Thread(() => |
| | | { |
| | |
| | | //初始化住宅所有房间功能数据 |
| | | foreach (var r in RoomList) |
| | | { |
| | | r.GetRoomFunctions(true); |
| | | r.GetRoomScenes(true); |
| | | InitRoomFuntion(r); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | /// <summary> |
| | | /// 初始化房间功能 |
| | | /// </summary> |
| | | /// <param name="tempRoom"></param> |
| | | public void InitRoomFuntion(Room tempRoom) |
| | | { |
| | | tempRoom.GetRoomFunctions(true); |
| | | tempRoom.GetRoomScenes(true); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 保存房间数据 |
| | | /// 保存房间数据文件 |
| | | /// </summary> |
| | | public string SaveRoomData(bool upServer = true) |
| | | public void SaveRoomFile() |
| | | { |
| | | var packCode = StateCode.SUCCESS; |
| | | bool needSave = true; |
| | | if (upServer) |
| | | { |
| | | packCode = SaveSpatialInfo().Code; |
| | | } |
| | | if (needSave) |
| | | { |
| | | var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); |
| | | Common.FileUtlis.Files.WriteFileByBytes(dataSavePath, ssd); |
| | | } |
| | | return packCode; |
| | | var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); |
| | | Common.FileUtlis.Files.WriteFileByBytes(dataSavePath, ssd); |
| | | } |
| | | /// <summary> |
| | | /// 更新房间数据 |
| | | /// </summary> |
| | | public void UpdataRoomInfo() |
| | | { |
| | | new System.Threading.Thread(() => |
| | | { |
| | | var pm = new HttpServerRequest(); |
| | | var pack = pm.UpdateRoom(new List<SpatialInfo>() { this }); |
| | | this.SaveRoomFile(); |
| | | if (pack.Code != StateCode.SUCCESS) |
| | | { |
| | | IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); |
| | | } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | } |