From 6bf515816c3c971f57722c5195208f65446ef335 Mon Sep 17 00:00:00 2001
From: tzy <274116637@qq.com>
Date: 星期一, 29 三月 2021 17:49:15 +0800
Subject: [PATCH] 完成新风功能
---
HDL_ON/Entity/Room.cs | 225 +++++++++++++++++++------------------------------------
1 files changed, 79 insertions(+), 146 deletions(-)
diff --git a/HDL_ON/Entity/Room.cs b/HDL_ON/Entity/Room.cs
index dcad772..df6eb59 100644
--- a/HDL_ON/Entity/Room.cs
+++ b/HDL_ON/Entity/Room.cs
@@ -46,7 +46,7 @@
public SpatialInfo(string spatialType)
{
roomType = "FLOOR";
- parentId = UserInfo.Current.CurReginID;
+ parentId = DB_ResidenceData.Instance.CurrentRegion.RegionID;
}
public string roomId = "";
@@ -65,121 +65,33 @@
///// </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">鎿嶄綔绫诲瀷锛欰DD/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");
+ CurrentSpatial.DeleteAllRoom();
+ FloorList.Clear();
//澶勭悊鎴块棿鍒楄〃
if (roomUpdateList != null && roomUpdateList.Count > 0)
{
- if (optionType == OptionType.Update)
+ 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)
+ 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);
@@ -413,29 +325,34 @@
/// </summary>
public void DeleteAllRoom()
{
- foreach(var localRoom in RoomList)
+ for(int i=0;i< RoomList.Count;)
{
- Common.FileUtlis.Files.DeleteFile(localRoom.dataSavePath);
+ Common.FileUtlis.Files.DeleteFile(RoomList[i].dataSavePath);
+ RoomList.RemoveAt(i);
}
rooms = null;
}
- public void ClearRooms()
+ public void Clear()
{
- if (floors != null)
+ if (_currentSpatial != null)
{
- floors.Clear();
- }
- if (rooms != null)
- {
- rooms.Clear();
+ if (_currentSpatial.floors != null)
+ {
+ _currentSpatial.floors.Clear();
+ }
+ if (_currentSpatial.rooms != null)
+ {
+ _currentSpatial.rooms.Clear();
+ }
+ _currentSpatial = null;
}
}
/// <summary>
/// 鍒濆鍖栨瘡涓埧闂寸殑鍔熻兘鏁版嵁
/// </summary>
- public void InitRoomFunction()
+ public void InitRoomListFunctions()
{
new System.Threading.Thread(() =>
{
@@ -444,8 +361,7 @@
//鍒濆鍖栦綇瀹呮墍鏈夋埧闂村姛鑳芥暟鎹�
foreach (var r in RoomList)
{
- r.GetRoomFunctions(true);
- r.GetRoomScenes(true);
+ InitRoomFuntion(r);
}
}
catch (Exception ex)
@@ -455,25 +371,42 @@
})
{ 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
}
@@ -519,7 +452,7 @@
{
if (CurrentSpatial.FloorList.Count > 0)
{
- var f = CurrentSpatial.FloorList.Find((obj) => obj.roomId == parentId);
+ var f = CurrentSpatial.FloorList.Find((obj) => obj.uid == parentId);
if (f != null)
{
return f.roomName + " ";
@@ -529,10 +462,10 @@
}
}
- /// <summary>
- /// 鎴块棿鍔熻兘鍒楄〃
- /// </summary>
- List<Function> functions = new List<Function>();
+ ///// <summary>
+ ///// 鎴块棿鍔熻兘鍒楄〃
+ ///// </summary>
+ //List<Function> functions = new List<Function>();
/// <summary>
/// 鑾峰彇鎴块棿鍔熻兘鍒楄〃
/// </summary>
@@ -540,8 +473,8 @@
{
if (needRefresh)
{
- functions = new List<Function>();
}
+ var functions = new List<Function>();
if (functions.Count == 0)
{
foreach (var f in FunctionList.List.GetDeviceFunctionList())
@@ -554,22 +487,22 @@
}
return functions;
}
- /// <summary>
- /// 澧炲姞鎴块棿鍔熻兘
- /// 鎿嶄綔鐨勬槸缂撳瓨鏁版嵁锛屼笉鐢ㄤ繚瀛�
- /// </summary>
- public void AddRoomFunction(Function function)
- {
- functions.Add(function);
- }
- /// <summary>
- /// 鍒犻櫎鎴块棿鍔熻兘
- /// 鎿嶄綔鐨勬槸缂撳瓨鏁版嵁锛屼笉鐢ㄤ繚瀛�
- /// </summary>
- public void RemoveRoomFunction(Function function)
- {
- functions.Remove(functions.Find((obj) => obj.sid == function.sid));
- }
+ ///// <summary>
+ ///// 澧炲姞鎴块棿鍔熻兘
+ ///// 鎿嶄綔鐨勬槸缂撳瓨鏁版嵁锛屼笉鐢ㄤ繚瀛�
+ ///// </summary>
+ //public void AddRoomFunction(Function function)
+ //{
+ // functions.Add(function);
+ //}
+ ///// <summary>
+ ///// 鍒犻櫎鎴块棿鍔熻兘
+ ///// 鎿嶄綔鐨勬槸缂撳瓨鏁版嵁锛屼笉鐢ㄤ繚瀛�
+ ///// </summary>
+ //public void RemoveRoomFunction(Function function)
+ //{
+ // functions.Remove(functions.Find((obj) => obj.sid == function.sid));
+ //}
/// <summary>
/// 鎴块棿鍦烘櫙鍒楄〃
/// </summary>
--
Gitblit v1.8.0