From 4f2dbd1f6a1ec2d9c3c39b4a37b0b7c9ddece4aa Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期四, 23 九月 2021 15:24:01 +0800
Subject: [PATCH] 主页刷新优化

---
 HDL_ON/Entity/FunctionList.cs |  145 +++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 124 insertions(+), 21 deletions(-)

diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index d0cb2e8..2419c00 100644
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -5,6 +5,7 @@
 using HDL_ON.Common;
 using HDL_ON.DAL;
 using HDL_ON.DAL.Server;
+using HDL_ON.DriverLayer;
 using Shared;
 
 namespace HDL_ON.Entity
@@ -109,15 +110,26 @@
         {
             return Functions.FindAll((obj) => obj.spk == SPK.IrModule);
         }
-
         #endregion
+
+        /// <summary>
+        /// 闊充箰鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public List<Function> GetMusicList()
+        {
+            var spkList = SPK.MusicSpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
+        }
+
+
         /// <summary>
         /// 鐜浼犳劅鍣ㄥ垪琛�
         /// </summary>
         public List<Function> GetEnvirSensorsList()
         {
-            var spkList = SPK.EnvironSpkList();
-            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
+            var spkList = SPK.EnvironDeviceSpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
         }
         /// <summary>
         /// 瀹夐槻璁惧鍒楄〃
@@ -128,7 +140,41 @@
             return Functions.FindAll((obj) => spkList.Contains(obj.spk));
         }
 
+        /// <summary>
+        /// 鍙瀵硅鍒楄〃,褰撲负null鎴杝ize涓�0鍒欎笉鏄剧ず鍙瀵硅icon
+        /// </summary>
+        // public UI.UI2.FuntionControlView.Video.VideoClouds videoIntercom;
+        public List<UI.UI2.FuntionControlView.Video.Video> videoIntercom = new List<UI.UI2.FuntionControlView.Video.Video>();
+
+        List<Function> _OtherBrandFunction;
+        /// <summary>
+        /// 绗笁鏂瑰搧鐗屽姛鑳�
+        /// </summary>
+        public List<Function> OtherBrandFunction
+        {
+            get
+            {
+                if(_OtherBrandFunction == null)
+                {
+                    _OtherBrandFunction = new List<Function>();
+                    var spkList = SPK.GetAll3tySPK();
+                    _OtherBrandFunction = Functions.FindAll((obj) => spkList.Contains(obj.spk));
+                }
+                return _OtherBrandFunction;
+            }
+        }
+
+
+        /// <summary>
+        /// 鍦烘櫙鍒楄〃
+        /// </summary>
         public List<Scene> scenes = new List<Scene>();
+
+        /// <summary>
+        /// 瀹夐槻鍒楄〃
+        /// </summary>
+        public List<SecurityAlarm> securities = new List<SecurityAlarm>();
+
 
         /// <summary>
         /// 鍔犺浇鍔熻兘鍒楄〃
@@ -152,19 +198,24 @@
                     FileUtlis.Files.DeleteFile(filePath);
                     return;
                 }
-                if (checkRepeat == true)
-                {
-                    //妫�娴嬮噸澶�
-                    for (int i = 0; i < Functions.Count; i++)
-                    {
-                        if (Functions[i].deviceId == tempFunction.deviceId)
-                        {
-                            //鍏堢Щ闄ゆ帀鍐嶅姞
-                            Functions.RemoveAt(i);
-                            Functions.Add(tempFunction);
-                            return;
-                        }
-                    }
+                //闊充箰閮ㄥ垎瑕佷慨鏀�
+                //if(tempFunction.spk.ToString() == SPK.MusicStandard)
+                //{
+                //    UI.Music.A31MusicModel.A31MusicModelList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<UI.Music.A31MusicModel>(functionDataString));
+                //}
+                if (checkRepeat == true)
+                {
+                    //妫�娴嬮噸澶�
+                    for (int i = 0; i < Functions.Count; i++)
+                    {
+                        if (Functions[i].deviceId == tempFunction.deviceId)
+                        {
+                            //鍏堢Щ闄ゆ帀鍐嶅姞
+                            Functions.RemoveAt(i);
+                            Functions.Add(tempFunction);
+                            return;
+                        }
+                    }
                 }
                 Functions.Add(tempFunction);
             }
@@ -174,6 +225,33 @@
                 var sceneDataString = System.Text.Encoding.UTF8.GetString(sceneDataBytes);
                 var tempScene = Newtonsoft.Json.JsonConvert.DeserializeObject<Scene>(sceneDataString);
                 List.scenes.Add(tempScene);
+            }
+            else if (filePath.StartsWith("SecurityData_"))
+            {
+                var dataBytes = FileUtlis.Files.ReadFile(filePath);
+                var dataString = System.Text.Encoding.UTF8.GetString(dataBytes);
+                var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<SecurityAlarm>(dataString);
+                if (temp == null)
+                {
+                    MainPage.Log("null");
+                    FileUtlis.Files.DeleteFile(filePath);
+                    return;
+                }
+                if (checkRepeat == true)
+                {
+                    //妫�娴嬮噸澶�
+                    for (int i = 0; i < securities.Count; i++)
+                    {
+                        if (securities[i].sid == temp.sid)
+                        {
+                            //鍏堢Щ闄ゆ帀鍐嶅姞
+                            securities.RemoveAt(i);
+                            securities.Add(temp);
+                            return;
+                        }
+                    }
+                }
+                securities.Add(temp);
             }
         }
 
@@ -215,6 +293,9 @@
 
             return Functions;
         }
+
+
+
 
         /// <summary>
         /// 娓呯┖璁惧鍔熻兘鍒楄〃
@@ -269,6 +350,7 @@
                 List.scenes.Remove(scene);
             }
         }
+
         /// <summary>
         /// 鍒犻櫎鏈湴鍔熻兘鍙婃枃浠�
         /// </summary>
@@ -352,6 +434,17 @@
                             //        break;
                             //}
                         }
+                        if(DB_ResidenceData.Instance.GatewayType == 1)
+                        {
+                            Dictionary<string, string> pairs = new Dictionary<string, string>();
+                            string sendId = Control.Ins.msg_id.ToString();
+                            pairs.Add("id", sendId);
+                            pairs.Add("time_stamp", Utlis.GetTimestamp());
+                            var readSecurityStatusJson = Newtonsoft.Json.JsonConvert.SerializeObject(pairs);
+                            var sendBytes = Control.Ins.ConvertSendBodyData(CommunicationTopic.ct.ReadSecurityStatus, readSecurityStatusJson);
+                            MainPage.Log($"鏈湴閫氳 璇诲彇瀹夐槻鐘舵��:{readSecurityStatusJson}");
+                            new Control_Udp().SendLocalHdlLinkData(sendBytes, sendId);
+                        }
                     }
                     else
                     {
@@ -386,6 +479,7 @@
             })
             { IsBackground = true }.Start();
         }
+
         #region 鍦烘櫙鐩稿叧
         /// <summary>
         /// 娣诲姞鍦烘櫙
@@ -397,11 +491,20 @@
             var revPack = pm.AddScene(scene);
             if (revPack.Code == StateCode.SUCCESS)
             {
-                var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString());
-                tempScene = sceneList.Find((obj) => obj.sid == scene.sid);
-                var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene));
-                FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd);
-                result = tempScene;
+                if (MainPage.NoLoginMode)
+                {
+                    var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(scene));
+                    FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd);
+                    result = scene;
+                }
+                else
+                {
+                    var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString());
+                    tempScene = sceneList.Find((obj) => obj.sid == scene.sid);
+                    var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene));
+                    FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd);
+                    result = tempScene;
+                }
             }
             else
             {

--
Gitblit v1.8.0