From d724f7f21c5cc8c5dd5aa0cf7345a62a662eb2bf Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期三, 16 十二月 2020 15:12:18 +0800
Subject: [PATCH] 2020-12-16 1.子账号和解锁部分接口增加Loading处理

---
 HDL_ON/Entity/FunctionList.cs |  250 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 220 insertions(+), 30 deletions(-)

diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index 0610a77..6d6b3f2 100644
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -4,6 +4,7 @@
 using System.Threading;
 using HDL_ON.DAL;
 using HDL_ON.DAL.Server;
+using Shared;
 
 namespace HDL_ON.Entity
 {
@@ -130,48 +131,51 @@
                         case SPK.LightRGB:
                         case SPK.LightRGBW:
                         case SPK.LightCCT:
-                            _FunctionList.lights.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(functionDataString));
-                            deviceFunctionList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(functionDataString));
+                            var light = Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(functionDataString);
+                            _FunctionList.lights.Add(light);
+                            deviceFunctionList.Add(light);
                             break;
                         case SPK.CurtainRoller:
                         case SPK.CurtainShades:
                         case SPK.CurtainSwitch:
                         case SPK.CurtainTrietex:
-                            _FunctionList.curtains.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(functionDataString));
-                            deviceFunctionList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(functionDataString));
+                            var curtain = Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(functionDataString);
+                            _FunctionList.curtains.Add(curtain);
+                            deviceFunctionList.Add(curtain);
                             break;
                         case SPK.AcStandard:
-                            _FunctionList.aCs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(functionDataString));
-                            deviceFunctionList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(functionDataString));
+                            var ac = Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(functionDataString);
+                            _FunctionList.aCs.Add(ac);
+                            deviceFunctionList.Add(ac);
                             break;
                         case SPK.FloorHeatStandard:
-                            //鎭㈠鍦扮儹鏁版嵁
-                            _FunctionList.floorHeatings.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(functionDataString));
-                            deviceFunctionList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(functionDataString));
+                            var fh = Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(functionDataString);
+                            _FunctionList.floorHeatings.Add(fh);
+                            deviceFunctionList.Add(fh);
                             break;
                         case SPK.SensorPm25:
                         case SPK.SensorCO2:
                         case SPK.SensorTVOC:
                         case SPK.SensorTemperature:
                         case SPK.SensorHumidity:
-                            //鎭㈠鐜鏁版嵁
-                            _FunctionList.sensorsEnvironmentalScience.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(functionDataString));
-                            deviceFunctionList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(functionDataString));
+                            var sensor = Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(functionDataString);
+                            _FunctionList.sensorsEnvironmentalScience.Add(sensor);
+                            deviceFunctionList.Add(sensor);
                             break;
                         case SPK.ElectricSocket:
-                            //鎭㈠鎻掑骇鏁版嵁
-                            _FunctionList.switchSockets.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(functionDataString));
-                            deviceFunctionList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(functionDataString));
+                            var ele = Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(functionDataString);
+                            _FunctionList.switchSockets.Add(ele);
+                            deviceFunctionList.Add(ele);
                             break;
                         case SPK.ElectricTV:
-                            //鎭㈠鐢佃鏁版嵁
-                            _FunctionList.tVs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(functionDataString));
-                            deviceFunctionList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(functionDataString));
+                            var tv = Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(functionDataString);
+                            _FunctionList.tVs.Add(tv);
+                            deviceFunctionList.Add(tv);
                             break;
                         case SPK.ElectricFan:
-                            //鎭㈠椋庢墖鏁版嵁
-                            _FunctionList.fans.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(functionDataString));
-                            deviceFunctionList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(functionDataString));
+                            var  fan = Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(functionDataString);
+                            _FunctionList.fans.Add(fan);
+                            deviceFunctionList.Add(fan);
                             break;
                     }
                 }
@@ -434,17 +438,14 @@
                     var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(pack.Data.ToString());
                     if (sceneList != null)
                     {
-                        ////灏嗕笅杞藉埌鍒版暟鎹叏閮ㄤ繚瀛�
-                        //new Thread(() => {
-                        //    foreach (var temp in sceneList)
-                        //    {
-                        //        temp.SaveSceneData();
-                        //    }
-                        //})
-                        //{ IsBackground = true }.Start();
-                        for(int i=0;i<List.scenes.Count;)
+                        for (int i=0;i<List.scenes.Count;)
                         {
                             var localScene = List.scenes[i];
+                            if (localScene == null)
+                            {
+                                List.scenes.Remove(localScene);
+                                continue;
+                            }
                             var newScene = sceneList.Find((obj) => obj.userSceneId == localScene.userSceneId);
                             if (newScene == null)//濡傛灉浜戠鏈�鏂版暟鎹病鏈夎鏉℃暟鎹紝鍒欐湰鍦伴渶瑕佸垹鎺夎鏁版嵁璁板綍
                             {
@@ -618,6 +619,195 @@
             { IsBackground = true }.Start();
         }
 
+
+        #region 鍔熻兘鏂囨湰鐩稿叧
+        /// <summary>
+        /// 灞炴�у悕绉版樉绀烘枃鏈�
+        /// 涓嫳鏂囨樉绀�
+        /// </summary>
+        public string GetNameText(string key)
+        {
+            string text = "";
+            switch (key)
+            {
+                case FunctionAttributeKey.OnOff:
+                    text = Language.StringByID(StringId.OnOff);
+                    break;
+                case FunctionAttributeKey.Brightness:
+                    text = Language.StringByID(StringId.Brightness);
+                    break;
+                case FunctionAttributeKey.Color:
+                    text = Language.StringByID(StringId.ColorValue);
+                    break;
+                case FunctionAttributeKey.Mode:
+                    text = Language.StringByID(StringId.Mode);
+                    break;
+                case FunctionAttributeKey.FanSpeed:
+                    text = Language.StringByID(StringId.FanSpeed);
+                    break;
+                case FunctionAttributeKey.SetTemp:
+                    text = Language.StringByID(StringId.Temp);
+                    break;
+                case FunctionAttributeKey.IndoorTemp:
+                    text = Language.StringByID(StringId.IndoorTemp);
+                    break;
+                case FunctionAttributeKey.Delay:
+                    text = Language.StringByID(StringId.Delay);
+                    break;
+                case FunctionAttributeKey.CCT:
+                    text = "CCT";
+                    break;
+                case FunctionAttributeKey.Percent:
+                    text = Language.StringByID(StringId.PercentAdjustment);
+                    break;
+            }
+            return text;
+        }
+
+        /// <summary>
+        /// 灞炴�у�煎崟浣�
+        /// </summary>
+        public string GetUintString(string key)
+        {
+            var us = "";
+            switch (key)
+            {
+                case FunctionAttributeKey.SetTemp:
+                case FunctionAttributeKey.IndoorTemp:
+                    us = "掳C";
+                    break;
+                case FunctionAttributeKey.Percent:
+                case FunctionAttributeKey.Brightness:
+                    us = "%";
+                    break;
+            }
+            return us;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鎸囧畾灞炴�х殑鏄剧ず鏂囨湰
+        /// 涓嫳鏂囨樉绀�
+        /// </summary>
+        public string GetValueText(string key, string value)
+        {
+            string text = "";
+            switch (key)
+            {
+                case FunctionAttributeKey.OnOff:
+                    text = value == "on" ? Language.StringByID(StringId.On) : Language.StringByID(StringId.OFF);
+                    break;
+                case FunctionAttributeKey.SetTemp:
+                case FunctionAttributeKey.IndoorTemp:
+                case FunctionAttributeKey.Brightness:
+                case FunctionAttributeKey.Percent:
+                    if (value == "")
+                    {
+                        value = "0";
+                    }
+                    text = value;
+                    break;
+                case FunctionAttributeKey.Mode:
+                    switch (value)
+                    {
+                        //----绌鸿皟
+                        case "auto":
+                            text = Language.StringByID(StringId.Auto);
+                            break;
+                        case "cool":
+                            text = Language.StringByID(StringId.Cool);
+                            break;
+                        case "heat":
+                            text = Language.StringByID(StringId.Heat);
+                            break;
+                        case "dry":
+                            text = Language.StringByID(StringId.Dry);
+                            break;
+                        case "fan":
+                            text = Language.StringByID(StringId.AirSupply);
+                            break;
+                        //-----鍦扮儹
+                        case "day":
+                            text = Language.StringByID(StringId.Day);
+                            break;
+                        case "night":
+                            text = Language.StringByID(StringId.Night);
+                            break;
+                        case "away":
+                            text = Language.StringByID(StringId.Away);
+                            break;
+                        case "normal":
+                            text = Language.StringByID(StringId.Normal);
+                            break;
+                        case "timer":
+                            text = Language.StringByID(StringId.Timer);
+                            break;
+                    }
+                    break;
+                case FunctionAttributeKey.FanSpeed:
+                    switch (value)
+                    {
+                        case "high":
+                            text = Language.StringByID(StringId.HighWindSpeed);
+                            break;
+                        case "medium":
+                            text = Language.StringByID(StringId.MiddleWindSpeed);
+                            break;
+                        case "low":
+                            text = Language.StringByID(StringId.LowWindSpeed);
+                            break;
+                        case "auto":
+                            text = Language.StringByID(StringId.Auto);
+                            break;
+                        default:
+                            text = "low";
+                            break;
+                    }
+                    break;
+                case "high":
+                    text = Language.StringByID(StringId.HighWindSpeed);
+                    break;
+                case "medium":
+                    text = Language.StringByID(StringId.MiddleWindSpeed);
+                    break;
+                case "low":
+                    text = Language.StringByID(StringId.LowWindSpeed);
+                    break;
+                case "auto":
+                    text = Language.StringByID(StringId.Auto);
+                    break;
+            }
+            return text;
+        }
+
+
+        /// <summary>
+        /// 寤舵椂鏄剧ず鐨勬枃鏈�
+        /// </summary>
+        public string GetDelayText(string delay)
+        {
+            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;
+        }
+
+        #endregion
     }
 
 }

--
Gitblit v1.8.0