From 62d77d3bb8e7215d9da9ecf6f5aeda0b69f805f8 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期二, 08 十二月 2020 18:57:15 +0800
Subject: [PATCH] 20201208

---
 HDL_ON/Entity/Function/Scene.cs |   92 +++++++++++++++++++++------------------------
 1 files changed, 43 insertions(+), 49 deletions(-)

diff --git a/HDL_ON/Entity/Function/Scene.cs b/HDL_ON/Entity/Function/Scene.cs
index c8d208e..362a245 100644
--- a/HDL_ON/Entity/Function/Scene.cs
+++ b/HDL_ON/Entity/Function/Scene.cs
@@ -49,6 +49,10 @@
         /// </summary>
         public List<string> roomIds = new List<string>();
         /// <summary>
+        /// 鎵�灞炴埧闂村垪琛�
+        /// </summary>
+        public List<string> uids = new List<string>();
+        /// <summary>
         /// 寤舵椂
         /// </summary>
         public int delay = 0;
@@ -134,21 +138,18 @@
         public List<ScenePushConfig> pushConfigs = new List<ScenePushConfig>();
 
         /// <summary>
-        /// 鐢熸垚鍦烘櫙sid
+        /// 鐢熸垚閫昏緫sid鏂规硶
         /// </summary>
-        public void NewSid()
+        public string NewSid()
         {
-            string sSceneid = "";
+            string sceneId = "";
             try
             {
                 string sOidBeginsWith = "000101";//鍘傚晢 + 閫氳鏂瑰紡
                 DateTime dt = DateTime.Now;
-
-
                 DateTime startTime = TimeZoneInfo.ConvertTimeToUtc(new DateTime(2020, 1, 1));
                 long m = (long)((dt - startTime).TotalMilliseconds / 10);
                 string sTimeSpan = "00000000";
-
 
                 byte[] arry = new byte[4];
                 arry[0] = (byte)(m & 0xFF);
@@ -167,25 +168,29 @@
                     sTimeSpan = "00000000";
                 }
 
-                sSceneid = sOidBeginsWith + sTimeSpan;
+                sceneId = sOidBeginsWith + sTimeSpan;
 
-                sSceneid += "0A";
-                sSceneid += "0A01";
-                //0A01 鐗╂ā鍨嬩负鍦烘櫙锛� 0001 琛ㄧず 1 鍙峰満鏅姛鑳�
-                int iTopSceneId = 1;
+                sceneId += "0A";
+                sceneId += "0A01";
+                int maxId = 1;
 
-                Random random = new Random();
-                iTopSceneId = random.Next(0, 255);
-                iTopSceneId += random.Next(0, 255);
 
-                sSceneid += iTopSceneId.ToString("X4");//鍦烘櫙鍙� 涓や釜byte 
-                sSceneid += "1100";
-                sid = sSceneid;
+                for (int i = 0; i < FunctionList.List.scenes.Count; i++)
+                {
+                    string s = FunctionList.List.scenes[i].sid.Substring(20, 4);
+                    int iThisSceneId = Convert.ToInt16(s, 16);
+                    if (iThisSceneId > maxId)
+                        maxId = iThisSceneId;
+                }
+
+                sceneId += (maxId + 1).ToString("X4");
+                sceneId += "0000";
             }
             catch
             {
-                sid = sSceneid;
+                return sceneId;
             }
+            return sceneId;
         }
 
         /// <summary>
@@ -230,12 +235,15 @@
         /// <summary>
         /// 淇濆瓨鍔熻兘鏁版嵁
         /// </summary>
-        public void SaveSceneData()
+        public void SaveSceneData(bool upServer)
         {
+            if (upServer)
+            {
+                UploadScene();
+            }
             var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
             FileUtils.WriteFileByBytes(savePath, ssd);
             MainPage.Log($"Save Scene Data : {savePath}");
-            UploadScene();
         }
 
         /// <summary>
@@ -245,44 +253,30 @@
         {
             var pm = new HttpServerRequest();
             ResponsePackNew revPack;
-            if (DeleteSign)
+            if (string.IsNullOrEmpty(createTime) && string.IsNullOrEmpty(modifyTime))
             {
-                var resCode = pm.DeleteScene(userSceneId);
-            }
-            else
-            {
-                if (string.IsNullOrEmpty(createTime) && string.IsNullOrEmpty(modifyTime))
+                revPack = pm.AddScene(this);
+                if (revPack.Code == StateCode.SUCCESS)
                 {
-                    revPack = pm.AddScene(this);
-                    if (revPack.Code == StateCode.SUCCESS)
-                    {
-                        var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
-                        FileUtils.WriteFileByBytes(savePath, ssd);
-                    }
+                    var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
+                    FileUtils.WriteFileByBytes(savePath, ssd);
                 }
-                else if (!string.IsNullOrEmpty(createTime) && !string.IsNullOrEmpty(modifyTime))
+            }
+            else if (!string.IsNullOrEmpty(createTime) && !string.IsNullOrEmpty(modifyTime))
+            {
+                revPack = pm.EditScene(this);
+                if (revPack.Code == StateCode.SUCCESS)
                 {
-                    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 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));
-                            FileUtils.WriteFileByBytes(savePath, ssd);
-                        }
+                        var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene));
+                        FileUtils.WriteFileByBytes(savePath, ssd);
                     }
                 }
             }
         }
-
-        /// <summary>
-        /// 鍒犻櫎鏍囪
-        /// 闇�瑕佸垹闄ゆ暟鎹椂锛屾爣璁颁负锛歵rue
-        /// 鐢变簯绔垹闄ゆ垚鍔熶箣鍚庯紝杩斿洖鏁版嵁鍐嶆竻闄ゆ湰鍦版暟鎹�
-        /// </summary>
-        public bool DeleteSign = false;
 
         /// <summary>
         /// 浜戠鏁版嵁鍒涘缓鐨勬椂闂�

--
Gitblit v1.8.0