From 1026814d931de92f0da5f15a58870565a94100e0 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 11 一月 2021 14:37:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/NewFilePath' into WJC

---
 HDL_ON/Common/ApiUtlis.cs |  217 ++++++++++++++++++++++++++++++++---------------------
 1 files changed, 130 insertions(+), 87 deletions(-)

diff --git a/HDL_ON/Common/ApiUtlis.cs b/HDL_ON/Common/ApiUtlis.cs
index 24eac42..ca5bc48 100644
--- a/HDL_ON/Common/ApiUtlis.cs
+++ b/HDL_ON/Common/ApiUtlis.cs
@@ -19,7 +19,7 @@
         {
             get
             {
-                if(apiUtlis == null)
+                if (apiUtlis == null)
                 {
                     apiUtlis = new ApiUtlis();
                 }
@@ -33,7 +33,7 @@
         {
             get
             {
-                if(httpRequest == null)
+                if (httpRequest == null)
                 {
                     httpRequest = new HttpServerRequest();
                 }
@@ -47,7 +47,7 @@
         {
             bool result = DB_ResidenceData.Instance.HomeGateway.gatewayStatus;
 
-            if(!result)
+            if (!result)
             {
 
             }
@@ -64,7 +64,7 @@
             if (MainPage.InternetStatus == 0)
                 return;
             //绾跨▼寮�濮嬫椂闂�
-            var endTime = DateTime.Now.AddSeconds(6);
+            var endTime = DateTime.Now.AddSeconds(5);
 
             MainPage.Log($"寮�濮嬪悓姝ヤ簯绔暟鎹�");
 
@@ -86,6 +86,7 @@
                     MainPage.Log($"鍒锋柊token澶辫触");
                     return;
                 }
+                endTime = DateTime.Now.AddSeconds(5);
                 MainPage.Log($"鍒锋柊token鎴愬姛");
                 //===================鍒锋柊浣忓畢淇℃伅=======================
                 code = Ins.HttpRequest.GetHomePager();
@@ -94,6 +95,7 @@
                     MainPage.Log($"鍒锋柊浣忓畢淇℃伅澶辫触");
                     return;
                 }
+                endTime = DateTime.Now.AddSeconds(5);
                 MainPage.Log($"鍒锋柊浣忓畢淇℃伅鎴愬姛");
                 //===================鍒锋柊涓汉淇℃伅=======================
                 code = Ins.HttpRequest.GetUserInfo();
@@ -102,25 +104,26 @@
                     MainPage.Log($"鍒锋柊涓汉淇℃伅澶辫触");
                     return;
                 }
+                endTime = DateTime.Now.AddSeconds(5);
                 MainPage.Log($"鍒锋柊涓汉淇℃伅鎴愬姛");
 
-                int count = 0;
-                while (count < 10)
-                {
-                    if (DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
-                    {
-                        System.Threading.Thread.Sleep(200);
-                    }
-                    else
-                    {
-                        break;
-                    }
-                    count++;
-                }
-                if (DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
-                {
-                    return;
-                }
+                //int count = 0;
+                //while (count < 10)
+                //{
+                //    if (DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
+                //    {
+                //        System.Threading.Thread.Sleep(200);
+                //    }
+                //    else
+                //    {
+                //        break;
+                //    }
+                //    count++;
+                //}
+                //if (DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
+                //{
+                //    return;
+                //}
 
 
                 try
@@ -129,12 +132,17 @@
                     var roomResult = Ins.HttpRequest.GetRoomList();
                     if (roomResult.Code == StateCode.SUCCESS)
                     {
+                        endTime = DateTime.Now.AddSeconds(100);
                         MainPage.Log($"璇诲彇鎴块棿淇℃伅鎴愬姛");
                         var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<SpatialApiPack>(roomResult.Data.ToString());
-                        if (revData != null)
+                        if (revData == null)
                         {
-                            SpatialInfo.CurrentSpatial.UpdateSpatialList(revData.list, OptionType.Cover);
+                            revData = new SpatialApiPack();
                         }
+                        {
+                            SpatialInfo.CurrentSpatial.UpdateSpatialList(revData.list);
+                        }
+                        endTime = DateTime.Now.AddSeconds(5);
                     }
                     else
                     {
@@ -144,49 +152,53 @@
                     var deviceResult = Ins.HttpRequest.GetDeviceList();
                     if (deviceResult.Code == StateCode.SUCCESS)
                     {
+                        endTime = DateTime.Now.AddSeconds(100);
                         MainPage.Log($"璇诲彇璁惧淇℃伅鎴愬姛");
                         var deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<DevcieApiPack>(deviceResult.Data.ToString());
-                        if (deviceList != null)
+                        if (deviceList == null)
                         {
-                            if (FunctionList.List.GetDeviceFunctionList().Count > 0)
+                            deviceList = new DevcieApiPack();
+                        }
+                        if (FunctionList.List.GetDeviceFunctionList().Count > 0)
+                        {
+                            for (int i = 0; i < FunctionList.List.GetDeviceFunctionList().Count;)
                             {
-                                for (int i = 0; i < FunctionList.List.GetDeviceFunctionList().Count;)
+                                var localFunction = FunctionList.List.GetDeviceFunctionList()[i];
+                                if (localFunction.Spk_Prefix == FunctionCategory.Music)
                                 {
-                                    var localFunction = FunctionList.List.GetDeviceFunctionList()[i];
-                                    if (localFunction.functionCategory == FunctionCategory.Music)
+                                    i++;
+                                    continue;
+                                }
+                                var newFunction = deviceList.list.Find((obj) => obj.deviceId == localFunction.deviceId);
+                                if (newFunction == null)//濡傛灉浜戠鏈�鏂版暟鎹病鏈夎鏉℃暟鎹紝鍒欐湰鍦伴渶瑕佸垹鎺夎鏁版嵁璁板綍
+                                {
+                                    FunctionList.List.DeleteFunction(localFunction);
+                                }
+                                else
+                                {
+                                    MainPage.Log($"deviceType:{localFunction.spk} local:{localFunction.modifyTime} server:{newFunction.modifyTime}");
+                                    i++;
+                                    if (localFunction.modifyTime != newFunction.modifyTime)
                                     {
-                                        i++;
-                                        continue;
+                                        //鍙紭鍖�
+                                        localFunction.name = newFunction.name;
+                                        localFunction.collect = newFunction.collect;
+                                        localFunction.modifyTime = newFunction.modifyTime;
+                                        localFunction.roomIds = newFunction.roomIds;
+                                        localFunction.bus = newFunction.bus;
+                                        localFunction.SaveFunctionFile();
                                     }
-                                    var newFunction = deviceList.list.Find((obj) => obj.deviceId == localFunction.deviceId);
-                                    if (newFunction == null)//濡傛灉浜戠鏈�鏂版暟鎹病鏈夎鏉℃暟鎹紝鍒欐湰鍦伴渶瑕佸垹鎺夎鏁版嵁璁板綍
-                                    {
-                                        FunctionList.List.DeleteFunction(localFunction);
-                                    }
-                                    else
-                                    {
-                                        MainPage.Log($"deviceType:{localFunction.spk} local:{localFunction.modifyTime} server:{newFunction.modifyTime}");
-                                        i++;
-                                        if (localFunction.modifyTime != newFunction.modifyTime)
-                                        {
-                                            localFunction.name = newFunction.name;
-                                            localFunction.collect = newFunction.collect;
-                                            localFunction.modifyTime = newFunction.modifyTime;
-                                            localFunction.roomIds = newFunction.roomIds;
-                                            localFunction.bus = newFunction.bus;
-                                            localFunction.SaveFunctionData(false);
-                                        }
-                                        deviceList.list.Remove(newFunction);//鎿嶄綔瀹岀殑鏁版嵁娓呯悊鎺夛紝鍓╀笅鐨勫氨鏄柊澧炵殑鍔熻兘
-                                    }
+                                    deviceList.list.Remove(newFunction);//鎿嶄綔瀹岀殑鏁版嵁娓呯悊鎺夛紝鍓╀笅鐨勫氨鏄柊澧炵殑鍔熻兘
                                 }
                             }
-                            //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳�
-                            foreach (var newFunction in deviceList.list)
-                            {
-                                newFunction.SaveFunctionData(false);
-                                FunctionList.List.IniFunctionList(newFunction.savePath);
-                            }
                         }
+                        //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳�
+                        foreach (var newFunction in deviceList.list)
+                        {
+                            newFunction.SaveFunctionFile();
+                            FunctionList.List.IniFunctionList(newFunction.savePath);
+                        }
+                        endTime = DateTime.Now.AddSeconds(5);
                     }
                     else
                     {
@@ -197,44 +209,75 @@
                     var pack = Ins.HttpRequest.GetSceneList();
                     if (pack.Code == StateCode.SUCCESS)
                     {
+                        endTime = DateTime.Now.AddSeconds(100);
                         MainPage.Log($"璇诲彇鍦烘櫙鏁版嵁鎴愬姛");
                         var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(pack.Data.ToString());
-                        if (sceneList != null)
+                        if (sceneList == null)
                         {
-                            for (int i = 0; i < FunctionList.List.scenes.Count;)
+                            sceneList = new List<Scene>();
+                        }
+                        for (int i = 0; i < FunctionList.List.scenes.Count;)
+                        {
+                            var localScene = FunctionList.List.scenes[i];
+                            if (localScene == null)
                             {
-                                var localScene = FunctionList.List.scenes[i];
-                                if (localScene == null)
-                                {
-                                    FunctionList.List.scenes.Remove(localScene);
-                                    continue;
-                                }
-                                var newScene = sceneList.Find((obj) => obj.userSceneId == localScene.userSceneId);
-                                if (newScene == null)//濡傛灉浜戠鏈�鏂版暟鎹病鏈夎鏉℃暟鎹紝鍒欐湰鍦伴渶瑕佸垹鎺夎鏁版嵁璁板綍
-                                {
-                                    FunctionList.List.DeleteScene(localScene, false);
-                                }
-                                else
-                                {
-                                    i++;
-                                    if (localScene.modifyTime != newScene.modifyTime)
-                                    {
-                                        localScene.name = newScene.name;
-                                        localScene.collect = newScene.collect;
-                                        localScene.modifyTime = newScene.modifyTime;
-                                        localScene.roomIds = newScene.roomIds;
-                                        localScene.SaveSceneData(false);
-                                    }
-                                    sceneList.Remove(newScene);//鎿嶄綔瀹岀殑鏁版嵁娓呯悊鎺夛紝鍓╀笅鐨勫氨鏄柊澧炵殑鍔熻兘
-                                }
+                                FunctionList.List.scenes.Remove(localScene);
+                                continue;
                             }
-                            //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳�
-                            foreach (var newScene in sceneList)
+                            var newScene = sceneList.Find((obj) => obj.userSceneId == localScene.userSceneId);
+                            if (newScene == null)//濡傛灉浜戠鏈�鏂版暟鎹病鏈夎鏉℃暟鎹紝鍒欐湰鍦伴渶瑕佸垹鎺夎鏁版嵁璁板綍
                             {
-                                newScene.SaveSceneData(false);
-                                FunctionList.List.scenes.Add(newScene);
+                                FunctionList.List.DeleteScene(localScene, false);
+                            }
+                            else
+                            {
+                                i++;
+                                if (localScene.modifyTime != newScene.modifyTime)
+                                {
+                                    localScene.name = newScene.name;
+                                    localScene.collect = newScene.collect;
+                                    localScene.modifyTime = newScene.modifyTime;
+                                    localScene.roomIds = newScene.roomIds;
+                                    localScene.image = newScene.image;
+                                    localScene.SaveSceneFile();
+                                }
+                                sceneList.Remove(newScene);//鎿嶄綔瀹岀殑鏁版嵁娓呯悊鎺夛紝鍓╀笅鐨勫氨鏄柊澧炵殑鍔熻兘
                             }
                         }
+                        //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳�
+                        foreach (var tempScene in sceneList)
+                        {
+                            tempScene.SaveSceneFile();
+                            FunctionList.List.scenes.Add(tempScene);
+                        }
+                        //濡傛灉鏄竴绔彛闇�瑕佹彁鍓嶄笅杞藉満鏅暟鎹紝鍚﹀垯鎺у埗涓嶄簡涓�绔彛鍦烘櫙
+                        if (DB_ResidenceData.Instance.GatewayType == 0)
+                        {
+                            var sceneIds = new List<string>();
+                            foreach (var tempScene in FunctionList.List.scenes)
+                            {
+                                sceneIds.Add(tempScene.userSceneId);
+                            }
+                            var packInfo = HttpRequest.GetSceneListInfo(sceneIds);
+                            if (packInfo.Code == StateCode.SUCCESS)
+                            {
+                                var serverTempList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(packInfo.Data.ToString());
+                                foreach (var localScene in FunctionList.List.scenes)
+                                {
+                                    var serverTemp = serverTempList.Find((obj) => obj.userSceneId == localScene.userSceneId);
+                                    if (serverTemp != null)
+                                    {
+                                        localScene.functions = serverTemp.functions;
+                                        localScene.SaveSceneFile();
+                                    }
+                                }
+                            }
+                            else
+                            {
+                                IMessageCommon.Current.ShowErrorInfoAlter(packInfo.Code);
+                            }
+                        }
+                        endTime = DateTime.Now.AddSeconds(5);
                     }
                     else
                     {
@@ -305,4 +348,4 @@
             { IsBackground = true }.Start();
         }
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.8.0