From 5eeafe3af80bfd88306bd8ad9e76c8f4b51ca35f Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期四, 17 十二月 2020 14:16:20 +0800 Subject: [PATCH] 增加本地发送的重发机制 --- HDL_ON/Entity/Function/Scene.cs | 171 ++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 126 insertions(+), 45 deletions(-) diff --git a/HDL_ON/Entity/Function/Scene.cs b/HDL_ON/Entity/Function/Scene.cs index 362a245..207a844 100644 --- a/HDL_ON/Entity/Function/Scene.cs +++ b/HDL_ON/Entity/Function/Scene.cs @@ -24,6 +24,14 @@ public class Scene { + public Scene() + { + sid = NewSid(); + if (!DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull()) + { + gatewayId = DB_ResidenceData.Instance.HomeGateway.gatewayId; + } + } /// <summary> /// 浜戠鍞竴ID /// </summary> @@ -55,37 +63,37 @@ /// <summary> /// 寤舵椂 /// </summary> - public int delay = 0; - /// <summary> - /// 寤舵椂鏄剧ず鐨勬枃鏈� - /// </summary> - [Newtonsoft.Json.JsonIgnore] - public string delayText - { - get - { - string text = ""; - switch (delay) - { - case 0: - text = Language.StringByID(StringId.NoDelay); - break; - case 30: - text = "30s"; - break; - case 60: - text = "1min"; - break; - case 120: - text = "2min"; - break; - case 300: - text = "5min"; - break; - } - return text; - } - } + public string delay = "0"; + ///// <summary> + ///// 寤舵椂鏄剧ず鐨勬枃鏈� + ///// </summary> + //[Newtonsoft.Json.JsonIgnore] + //public string delayText + //{ + // get + // { + // string text = ""; + // switch (delay) + // { + // case 0: + // text = Language.StringByID(StringId.NoDelay); + // break; + // case 30: + // text = "30s"; + // break; + // case 60: + // text = "1min"; + // break; + // case 120: + // text = "2min"; + // break; + // case 300: + // text = "5min"; + // break; + // } + // return text; + // } + //} /// <summary> /// 鍦烘櫙鍒嗙粍 @@ -202,7 +210,7 @@ string roomNameList = ""; foreach (var roomId in roomIds) { - var findRoom = DB_ResidenceData.residenceData.Rooms.Find(obj => obj.uid == roomId); + var findRoom = SpatialInfo.CurrentSpatial.RoomList.Find(obj => obj.roomId == roomId); if (findRoom == null) { continue; @@ -241,9 +249,85 @@ { UploadScene(); } - var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); - FileUtils.WriteFileByBytes(savePath, ssd); - MainPage.Log($"Save Scene Data : {savePath}"); + else + { + var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); + Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd); + MainPage.Log($"Save Scene Data : {savePath}"); + } + } + /// <summary> + /// 鏀惰棌鍦烘櫙 + /// </summary> + /// <returns></returns> + public string CollectScene() + { + var pm = new HttpServerRequest(); + if (this.collect) + { + var revPack = pm.CollectScene(this.userSceneId); + return revPack; + } + else + { + var revPack = pm.CancelCollectScene(this.userSceneId); + return revPack; + } + } + + /// <summary> + /// 缂栬緫鍦烘櫙 + /// </summary> + public string EditScene() + { + var pm = new HttpServerRequest(); + var revPack = pm.EditScene(this); + if (revPack.Code == StateCode.SUCCESS) + { + var scenes = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString()); + var tempScene = scenes.Find((obj) => obj.sid == sid); + if (tempScene != null) + { + var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene)); + Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd); + } + } + return revPack.Code; + } + + /// <summary> + /// 淇敼鍦烘櫙 + /// </summary> + public string UpdateScene() + { + var pm = new HttpServerRequest(); + var revPack = pm.EditScene(this); + if (revPack.Code == StateCode.SUCCESS) + { + var scenes = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString()); + var tempScene = scenes.Find((obj) => obj.sid == sid); + if (tempScene != null) + { + var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene)); + Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd); + } + } + return revPack.Code; + } + + /// <summary> + /// 娣诲姞鍦烘櫙 + /// </summary> + public string AddScene() + { + var pm = new HttpServerRequest(); + var revPack = pm.AddScene(this); + if (revPack.Code == StateCode.SUCCESS) + { + var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); + Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd); + } + return revPack.Code; } /// <summary> @@ -259,7 +343,7 @@ if (revPack.Code == StateCode.SUCCESS) { var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); - FileUtils.WriteFileByBytes(savePath, ssd); + Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd); } } else if (!string.IsNullOrEmpty(createTime) && !string.IsNullOrEmpty(modifyTime)) @@ -272,7 +356,7 @@ if (tempScene != null) { var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene)); - FileUtils.WriteFileByBytes(savePath, ssd); + Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd); } } } @@ -305,10 +389,11 @@ /// 鏈湴瀵瑰簲鐨勫姛鑳� /// </summary> [Newtonsoft.Json.JsonIgnore] - public Function localFunction { + public Function localFunction + { get { - if(_localFunction == null) + if (_localFunction == null) { _localFunction = ConvertFunctionObject(); } @@ -322,14 +407,10 @@ /// <returns></returns> Function ConvertFunctionObject() { - var localFunction = DB_ResidenceData.functionList.GetAllDeviceFunctionList().Find((obj) => obj.sid == sid); - foreach (var s in status) - { - localFunction.attributes.Add(new FunctionAttributes() { key = s.key, curValue = s.value, value = new List<string>() { s.value } }); - } + var localFunction = FunctionList.List.GetDeviceFunctionList().Find((obj) => obj.sid == sid); return localFunction; } - + } /// <summary> -- Gitblit v1.8.0