From 3069c032027eeea7a14fa9f462440bb2d802d9a9 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期一, 11 一月 2021 14:25:09 +0800
Subject: [PATCH] 20210111-合并代码
---
HDL_ON/Entity/Room.cs | 412 +++++++++++++++++++++++++++-------------------------------
1 files changed, 192 insertions(+), 220 deletions(-)
diff --git a/HDL_ON/Entity/Room.cs b/HDL_ON/Entity/Room.cs
index 7d39796..055a4c6 100644
--- a/HDL_ON/Entity/Room.cs
+++ b/HDL_ON/Entity/Room.cs
@@ -1,6 +1,7 @@
锘縰sing System;
using System.Collections.Generic;
using HDL_ON.DAL.Server;
+using Shared;
namespace HDL_ON.Entity
{
@@ -45,148 +46,55 @@
public SpatialInfo(string spatialType)
{
roomType = "FLOOR";
- parentId = DB_ResidenceData.residenceData.CurReginID;
+ parentId = DB_ResidenceData.Instance.CurrentRegion.RegionID;
}
public string roomId = "";
public string roomName = "";
- public string roomImage = "";
+ //public string roomImage = "";
+ public string roomImage = "Classification/Room/Roombg.png";
public string roomType = "";
public string parentId = "";
public string uid = Guid.NewGuid().ToString();
public string createTime = "";
public string modifyTime = "";
- /// <summary>
- /// 鍒犻櫎鏍囪
- /// 闇�瑕佸垹闄ゆ暟鎹椂锛屾爣璁颁负锛歵rue
- /// 鐢变簯绔垹闄ゆ垚鍔熶箣鍚庯紝杩斿洖鏁版嵁鍐嶆竻闄ゆ湰鍦版暟鎹�
- /// </summary>
- public bool DeleteSign = false;
-
-
- protected void SaveSpatialInfo()
- {
- var pm = new HttpServerRequest();
- if (string.IsNullOrEmpty(createTime) && string.IsNullOrEmpty(modifyTime))
- {
- pm.AddRoom(new List<SpatialInfo>() { this });
- }
- else if (string.IsNullOrEmpty(createTime) && !string.IsNullOrEmpty(modifyTime))
- {
- pm.DeleteRoom(new List<string>() { roomId });
- }
- else if (!string.IsNullOrEmpty(createTime) && !string.IsNullOrEmpty(modifyTime))
- {
- pm.UpdateRoom(new List<SpatialInfo>() { this });
- }
- }
-
- /// <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>
+ ///// 鍒犻櫎鏍囪 20201208锛氬彲娆�:APP鐨勫湪绾垮拰绂荤嚎闂锛屽垰鍒氱‘瀹氫簡锛岀绾挎棤娉曠紪杈戯紝鍙兘鎺у埗
+ ///// 闇�瑕佸垹闄ゆ暟鎹椂锛屾爣璁颁负锛歵rue
+ ///// 鐢变簯绔垹闄ゆ垚鍔熶箣鍚庯紝杩斿洖鏁版嵁鍐嶆竻闄ゆ湰鍦版暟鎹�
+ ///// </summary>
+ //public bool DeleteSign = false;
/// <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");
//澶勭悊鎴块棿鍒楄〃
if (roomUpdateList != null && roomUpdateList.Count > 0)
{
- if (optionType == OptionType.Update)
+ CurrentSpatial.DeleteAllRoom();
+ foreach (var newRoom in roomUpdateList)
{
- foreach (var updateTemp in roomUpdateList)
- {
- var localDelRoom = CurrentSpatial.needDeleteRooms.Find((obj) => obj.roomId == updateTemp.roomId);
- if(localDelRoom!= null)
- {
- DelRoom(localDelRoom);
-
- continue;
- }
- 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();
- }
- }else
- {
- updateTemp.SaveRoomData();
- }
- }
- }
- else if (optionType == OptionType.Cover)
- {
- CurrentSpatial.DeleteAllRoom();
- foreach(var newRoom in roomUpdateList)
- {
- newRoom.SaveRoomData();
- 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;
- }
- }
- CurrentSpatial.SaveFloorData();
+ FloorList.Add(updateTemp);
}
- if(optionType == OptionType.Cover)
- {
- FloorList.Clear();
- foreach (var updateTemp in floorUpdateList)
- {
- FloorList.Add(updateTemp);
- }
- var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList));
- FileUtils.WriteFileByBytes(dataSavePath, ssd);
- }
+ var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList));
+ Common.FileUtlis.Files.WriteFileByBytes(dataSavePath, ssd);
}
}
@@ -206,16 +114,16 @@
{
try
{
- var floorsDataBytes = FileUtils.ReadFile("FloorsData");
+ var floorsDataBytes = Common.FileUtlis.Files.ReadFile("FloorsData");
if (floorsDataBytes != null)
{
var floorsDataString = System.Text.Encoding.UTF8.GetString(floorsDataBytes);
MainPage.Log(floorsDataString);
floors = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SpatialInfo>>(floorsDataString);
- if (floors == null)
- {
- floors = new List<SpatialInfo>();
- }
+ }
+ if (floors == null)
+ {
+ floors = new List<SpatialInfo>();
}
}
catch (Exception ex)
@@ -251,45 +159,74 @@
/// 澧炲姞妤煎眰
/// </summary>
/// <param name="floor"></param>
- public void AddFloor(SpatialInfo floor)
+ public string AddFloor(SpatialInfo floor, out SpatialInfo newFloor)
{
- FloorList.Add(floor);
- SaveFloorData();
+ var pm = new HttpServerRequest();
+ var revPack = new ResponsePackNew();
+ revPack = pm.AddRoom(new List<SpatialInfo>() { floor });
+ if (revPack.Code == StateCode.SUCCESS)
+ {
+ var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SpatialInfo>>(revPack.Data.ToString());
+ if (revData.Count > 0)
+ {
+ var addFloor = revData.Find((obj) => obj.uid == floor.uid);
+ if (addFloor != null)
+ {
+ CurrentSpatial.FloorList.Add(addFloor);
+ floor = addFloor;
+ }
+ }
+ var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(CurrentSpatial.FloorList));
+ Common.FileUtlis.Files.WriteFileByBytes(dataSavePath, ssd);
+ }
+ else
+ {
+ Utlis.ShowTip(Language.StringByID(StringId.AddFloorFail) + "\r\nCode:" + revPack.Code);
+ }
+ newFloor = floor;
+ return revPack.Code;
}
/// <summary>
/// 鏇存柊妤煎眰淇℃伅
/// </summary>
/// <param name="floor"></param>
- public void UpdateFloor()
+ public string UpdateFloor(SpatialInfo floor)
{
- SaveFloorData();
+ var pm = new HttpServerRequest();
+ var revPack = pm.UpdateRoom(new List<SpatialInfo>() { floor });
+ if (revPack.Code == StateCode.SUCCESS)
+ {
+ var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList));
+ Common.FileUtlis.Files.WriteFileByBytes(dataSavePath, ssd);
+ }
+ return revPack.Code;
}
/// <summary>
/// 鍒犻櫎妤煎眰
/// </summary>
/// <param name="floor"></param>
- public void DelFloor(SpatialInfo floor)
+ public string DelFloor(string floorId)
{
- var tRoom = FloorList.Find((obj) => obj.uid == floor.uid);
- if (tRoom != null)
+ if (string.IsNullOrEmpty( floorId))
+ return "";
+ var pm = new HttpServerRequest();
+ var code = pm.DeleteRoom(new List<string>() { floorId }).Code;
+ if (code == StateCode.SUCCESS)
{
- FloorList.Remove(floor);
- floor.DeleteSign = true;
+ var tRoom = CurrentSpatial.FloorList.Find((obj) => obj.roomId == floorId);
+ if (tRoom != null)
+ {
+ CurrentSpatial.FloorList.Remove(tRoom);
+ }
+ var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList));
+ Common.FileUtlis.Files.WriteFileByBytes(dataSavePath, ssd);
}
- SaveFloorData();
+ else
+ {
+ Utlis.ShowTip(Language.StringByID(StringId.DeleteFloorFail) + "\r\nCode:" + code);
+ }
+ return code;
}
-
- /// <summary>
- /// 淇濆瓨妤煎眰鏁版嵁
- /// </summary>
- void SaveFloorData()
- {
- var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList));
- FileUtils.WriteFileByBytes(dataSavePath, ssd);
- MainPage.Log($"Save floor Data");
- SaveSpatialInfo();
- }
-
#endregion
@@ -310,49 +247,20 @@
try
{
rooms = new List<Room> { };
- var filePathList = FileUtils.ReadFiles();
+ var filePathList = Common.FileUtlis.Files.ReadFiles();
foreach (var filePath in filePathList)
{
if (filePath.StartsWith("RoomData_"))
{
- var roomDataBytes = FileUtils.ReadFile(filePath);
+ var roomDataBytes = Common.FileUtlis.Files.ReadFile(filePath);
var roomDataString = System.Text.Encoding.UTF8.GetString(roomDataBytes);
var room = Newtonsoft.Json.JsonConvert.DeserializeObject<Room>(roomDataString);
- if (room != null )
+ if (room != null)
{
- if(room.DeleteSign)
- {
- needDeleteRooms.Add(room);
- }else
- {
- rooms.Add(room);
- }
+ rooms.Add(room);
}
}
- }
- if(needDeleteRooms.Count>0)
- {
- //鍒犻櫎宸茬粡鏍囪闇�瑕佸垹闄ょ殑鎴块棿
- new System.Threading.Thread(() =>
- {
- var delIds = new List<string>();
- foreach(var delTemp in needDeleteRooms)
- {
- delIds.Add(delTemp.roomId);
- }
- var pm = new HttpServerRequest();
- var pack = pm.DeleteRoom(delIds);
- if (pack.Code == StateCode.SUCCESS)
- {
- foreach (var delTemp in needDeleteRooms)
- {
- FileUtils.DeleteFile(delTemp.dataSavePath);
- }
- needDeleteRooms.Clear();
- }
- })
- { IsBackground = true }.Start();
}
}
catch (Exception ex)
@@ -364,49 +272,53 @@
}
}
/// <summary>
- /// 闇�瑕佸垹闄ょ殑鎴块棿
- /// 鏈湴鏍囪鍒犻櫎浜嗭紝浣嗘槸鏈嶅姟涓婃病鏈夊垹闄�
- /// 鏃犳硶涓庢湇鍔″櫒閫氳閫犳垚鍒犻櫎涓嶆垚鍔燂紝閫氳鎴愬姛涔嬪悗瑕侀噸鏂板垹闄�
- /// </summary>
- List<Room> needDeleteRooms = new List<Room>();
- /// <summary>
/// 澧炲姞鎴块棿
/// </summary>
/// <param name="room"></param>
- public void AddRoom(Room room)
+ public string AddRoom(Room room,out Room newRoom)
{
- RoomList.Add(room);
- room.SaveRoomData();
+ var pm = new HttpServerRequest();
+ var pack = pm.AddRoom(new List<SpatialInfo>() { room });
+
+ if (pack.Code == StateCode.SUCCESS)
+ {
+ var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SpatialInfo>>(pack.Data.ToString());
+ if (revData != null)
+ {
+ if (revData.Count > 0)
+ {
+ var tempRoom = revData.Find((obj) => obj.uid == room.uid);
+ if (tempRoom != null)
+ {
+ room.roomId = tempRoom.roomId;
+ CurrentSpatial.RoomList.Add(room);
+ var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(room));
+ Common.FileUtlis.Files.WriteFileByBytes(dataSavePath, ssd);
+ }
+ }
+ }
+ }
+ newRoom = room;
+ return pack.Code;
}
/// <summary>
/// 鍒犻櫎鎴块棿
/// </summary>
/// <param name="room"></param>
- public void DelRoom(Room room)
+ public string DelRoom(Room room)
{
- new System.Threading.Thread(() =>
+ var pm = new HttpServerRequest();
+ var pack = pm.DeleteRoom(new List<string>() { room.roomId });
+ if (pack.Code == StateCode.SUCCESS)
{
- room.DeleteSign = true;
- room.SaveRoomData();
- var tRoom = RoomList.Find((obj) => obj.uid == room.uid);
+ var tRoom = RoomList.Find((obj) => obj.roomId == room.roomId);
if (tRoom != null)
{
- RoomList.Remove(room);
+ CurrentSpatial.RoomList.Remove(room);
}
- var temp = needDeleteRooms.Find((obj) => obj.uid == room.uid);
- if (temp != null)
- {
- needDeleteRooms.Add(room);
- }
- var pm = new HttpServerRequest();
- var pack = pm.DeleteRoom(new List<string>() { room.roomId });
- if (pack.Code == StateCode.SUCCESS)
- {
- FileUtils.DeleteFile(room.dataSavePath);
- needDeleteRooms.Remove(room);
- }
- })
- { IsBackground = true }.Start();
+ Common.FileUtlis.Files.DeleteFile(room.dataSavePath);
+ }
+ return pack.Code;
}
/// <summary>
/// 鍒犻櫎鎵�鏈夋埧闂�
@@ -415,14 +327,31 @@
{
foreach(var localRoom in RoomList)
{
- FileUtils.DeleteFile(localRoom.dataSavePath);
+ Common.FileUtlis.Files.DeleteFile(localRoom.dataSavePath);
}
- RoomList.Clear();
+ rooms = null;
}
+
+ public void Clear()
+ {
+ if (_currentSpatial != null)
+ {
+ 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(() =>
{
@@ -431,8 +360,7 @@
//鍒濆鍖栦綇瀹呮墍鏈夋埧闂村姛鑳芥暟鎹�
foreach (var r in RoomList)
{
- r.GetRoomFunctions(true);
- r.GetRoomScenes(true);
+ InitRoomFuntion(r);
}
}
catch (Exception ex)
@@ -442,17 +370,42 @@
})
{ IsBackground = true }.Start();
}
+ /// <summary>
+ /// 鍒濆鍖栨埧闂村姛鑳�
+ /// </summary>
+ /// <param name="tempRoom"></param>
+ public void InitRoomFuntion(Room tempRoom)
+ {
+ tempRoom.GetRoomFunctions(true);
+ tempRoom.GetRoomScenes(true);
+ }
/// <summary>
- /// 淇濆瓨鎴块棿鏁版嵁
+ /// 淇濆瓨鎴块棿鏁版嵁鏂囦欢
/// </summary>
- public void SaveRoomData()
+ public void SaveRoomFile()
{
var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
- FileUtils.WriteFileByBytes(dataSavePath, ssd);
- MainPage.Log($"Save Room Data {roomName} : {uid}");
- SaveSpatialInfo();
+ 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
}
@@ -467,7 +420,26 @@
roomType = "ROOM";
roomName = "Room";
}
- public string backgroundImage = "Classification/Room/Roombg.png";
+ //public string backgroundImage = "Classification/Room/Roombg.png";
+ public string backgroundImage
+ {
+ get
+ {
+ if (string.IsNullOrEmpty(roomImage))
+ {
+ return "Classification/Room/Roombg.png";
+ }
+ else
+ {
+ return roomImage;
+ }
+ }
+ set
+ {
+ roomImage = value;
+ }
+ }
+
/// <summary>
/// 妤煎眰
@@ -477,9 +449,9 @@
{
get
{
- if (FloorList.Count > 0)
+ if (CurrentSpatial.FloorList.Count > 0)
{
- var f = FloorList.Find((obj) => obj.uid == parentId);
+ var f = CurrentSpatial.FloorList.Find((obj) => obj.uid == parentId);
if (f != null)
{
return f.roomName + " ";
@@ -504,9 +476,9 @@
}
if (functions.Count == 0)
{
- foreach (var f in DB_ResidenceData.functionList.GetAllFunction())
+ foreach (var f in FunctionList.List.GetDeviceFunctionList())
{
- if (f.roomIds.Contains(uid) && uid != null)
+ if (f.roomIds.Contains(roomId) && roomId != null)
{
functions.Add(f);
}
@@ -546,9 +518,9 @@
}
if (scenes.Count == 0)
{
- foreach (var s in DB_ResidenceData.functionList.scenes)
+ foreach (var s in FunctionList.List.scenes)
{
- if (s.roomIds.Contains(uid) && uid != null)
+ if (s.roomIds.Contains(roomId) && roomId != null)
{
scenes.Add(s);
}
--
Gitblit v1.8.0