From 43b0d5870d528f23ecd6aeceb6cfd4325188b46f Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 01 七月 2021 15:50:43 +0800
Subject: [PATCH] Revert "1"

---
 HDL_ON/Entity/FunctionList.cs |  626 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 474 insertions(+), 152 deletions(-)

diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index 4b0b5bb..1f2fe17 100644
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -1,210 +1,532 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Threading;
+using HDL_ON.Common;
+using HDL_ON.DAL;
+using HDL_ON.DAL.Server;
+using Shared;
 
 namespace HDL_ON.Entity
 {
-    public class FunctionList 
+    public class FunctionList
     {
-        /// <summary>
-        /// 绌鸿皟鍒楄〃
-        /// </summary>
-        public List<AC> aCs = new List<AC>();
-        /// <summary>
-        /// 鐏厜鍒楄〃
-        /// </summary>
-        public List<Light> lights = new List<Light>();
-        /// <summary>
-        /// 绐楀笜鍒楄〃
-        /// </summary>
-        public List<Curtain> curtains = new List<Curtain>();
-        /// <summary>
-        /// 鍦扮儹鍒楄〃
-        /// </summary>
-        public List<FloorHeating> floorHeatings = new List<FloorHeating>();
-        /// <summary>
-        /// 瀹剁數鍒楄〃
-        /// </summary>
-        public List<Function> electricals
+        static FunctionList _FunctionList;
+        public static FunctionList List
         {
             get
             {
-                var list = new List<Function>();
-                list.AddRange(fans);
-                list.AddRange(switchSockets);
-                list.AddRange(tVs);
-                return list;
+                if (_FunctionList == null)
+                {
+                    _FunctionList = new FunctionList();
+                    #region 鎭㈠鏁版嵁
+                    var filePathList = FileUtlis.Files.ReadFiles();
+                    foreach (var filePath in filePathList)
+                    {
+                        _FunctionList.IniFunctionList(filePath);
+                    }
+                    #endregion
+                }
+                return _FunctionList;
             }
         }
         /// <summary>
-        /// 椋庢墖鍒楄〃
+        /// 鍔熻兘鍒楄〃
         /// </summary>
-        public List<Fan> fans = new List<Fan>();
+        public List<Function> Functions = new List<Function>();
+
         /// <summary>
-        /// 鐢佃鍒楄〃
+        /// 绌鸿皟鍒楄〃
         /// </summary>
-        public List<TV> tVs = new List<TV>();
+        /// <returns></returns>
+        public List<Function> GetAcList()
+        {
+            var spkList = SPK.AcSpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
+        }
+
+        /// <summary>
+        /// 鐏厜鍒楄〃
+        /// </summary>
+        public List<Function> GetLightList()
+        {
+            var spkList = SPK.LightSpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
+        }
+        /// <summary>
+        /// 绐楀笜鍒楄〃
+        /// </summary>
+        public List<Function> GetCurtainList()
+        {
+            var spkList = SPK.CurtainSpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
+        }
+
+        /// <summary>
+        /// 鍦扮儹鍒楄〃
+        /// </summary>
+        public List<Function> GetFloorHeatingList()
+        {
+            var spkList = SPK.FhSpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
+        }
+
+        /// <summary>
+        /// 鏂伴鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public List<Function> GetAirFreshList()
+        {
+            var spkList = SPK.AirFreshSpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
+        }
+
+        /// <summary>
+        /// 鑳芥簮鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public List<Function> GetEnergyList()
+        {
+            var spkList = SPK.EnergySpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
+        }
+
+        #region 瀹剁數鍒楄〃 electricals
         /// <summary>
         /// 瀹剁數鍒楄〃
         /// </summary>
-        public List<SwitchSocket> switchSockets = new List<SwitchSocket>();
+        public List<Function> GetElectricals()
+        {
+            var spkList = SPK.ElectricalSpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
+        }
+    
+      
+        /// <summary>
+        /// 绾㈠瀹濆垪琛�
+        /// </summary>
+        public List<Function> GetIrModuleList()
+        {
+            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<Sensor> sensorsEnvironmentalScience = new List<Sensor>();
+        public List<Function> GetEnvirSensorsList()
+        {
+            var spkList = SPK.EnvironSpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
+        }
+        /// <summary>
+        /// 瀹夐槻璁惧鍒楄〃
+        /// </summary>
+        public List<Function> GetArmSensorList()
+        {
+            var spkList = SPK.ArmSensorSpkList();
+            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>();
 
-
-        [Newtonsoft.Json.JsonIgnore]
-        public List<Function> functions = new List<Function>();
+        /// <summary>
+        /// 瀹夐槻鍒楄〃
+        /// </summary>
+        public List<SecurityAlarm> securities = new List<SecurityAlarm>();
 
         /// <summary>
-        /// 鑾峰彇鎵�鏈夊姛鑳藉垪琛�
+        /// 鍔犺浇鍔熻兘鍒楄〃
         /// </summary>
-        public void GetAllFunction()
+        /// <param name="filePath"></param>
+        /// <param name="checkRepeat">
+        /// <para>鑰冭檻鍒版�ц兘闂杩藉姞姝ゅ彉閲�,鏄惁妫�娴嬮噸澶�,鍙function鏈夋晥</para>
+        /// <para>true:褰撻噸澶嶅瓨鍦ㄦ椂,鏇挎崲鎺�</para>
+        /// <para>false:鐩存帴鏃犳潯浠舵坊鍔�</para></param>
+        public void IniFunctionList(string filePath, bool checkRepeat = false)
         {
-            functions.Clear();
-            functions.AddRange(GetAllDeviceFunctionList());
-            functions.AddRange(scenes);
+            //MainPage.Log("12346890sdkxghjkl");
+            // todo 澧炲姞璁惧锛屽鍔犲姛鑳借繘鍔熻兘鍒楄〃
+            if (filePath.StartsWith("FunctionData_"))
+            {
+                var functionDataBytes = FileUtlis.Files.ReadFile(filePath);
+                var functionDataString = System.Text.Encoding.UTF8.GetString(functionDataBytes);
+                var tempFunction = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(functionDataString);
+                if (tempFunction == null)
+                {
+                    MainPage.Log("null");
+                    FileUtlis.Files.DeleteFile(filePath);
+                    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);
+            }
+            if (filePath.StartsWith("SceneData_"))
+            {
+                var sceneDataBytes = FileUtlis.Files.ReadFile(filePath);
+                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);
+            }
         }
 
         /// <summary>
         /// 鑾峰彇璁惧鍔熻兘鍒楄〃
         /// </summary>
-        public List<Function> GetAllDeviceFunctionList()
+        public List<Function> GetDeviceFunctionList(SPK.BrandType brandType = SPK.BrandType.All)
         {
-            var deviceFunctionList = new List<Function>();
-            deviceFunctionList.AddRange(aCs);
-            deviceFunctionList.AddRange(lights);
-            deviceFunctionList.AddRange(curtains);
-            deviceFunctionList.AddRange(floorHeatings);
-            deviceFunctionList.AddRange(electricals);
-            deviceFunctionList.AddRange(sensorsEnvironmentalScience);
-            deviceFunctionList.AddRange(HDL_ON.UI.Music.A31MusicModel.A31MusicModelList);
+            List<Function> resultFunctions = new List<Function>();
+            if (brandType == SPK.BrandType.All)
+            {
+            }
+            else
+            { 
+                switch (brandType)
+                {
+                    case SPK.BrandType.Hdl:
+                        foreach (var function in Functions)
+                        {
+                            if (!SPK.Get3tySpk(SPK.BrandType.All3tyBrand).Contains(function.spk))
+                            {
+                                resultFunctions.Add(function);
+                            }
+                        }
+                        break;
 
-            return deviceFunctionList.OrderByDescending(o => o.usageCount).ToList();
+                    case SPK.BrandType.Tuya:
+                        foreach (var function in Functions)
+                        {
+                            if (SPK.Get3tySpk(SPK.BrandType.Tuya).Contains(function.spk))
+                            {
+                                resultFunctions.Add(function);
+                            }
+                        }
+                        break;
+                }
+                return resultFunctions;
+            }
+
+            return Functions;
         }
+
+
+
+
         /// <summary>
         /// 娓呯┖璁惧鍔熻兘鍒楄〃
         /// </summary>
-        public void ClearAllDeviceFunctionList()
+        public void Clear()
         {
-            aCs = new List<AC>();
-            lights = new List<Light>();
-            curtains = new List<Curtain>();
-            floorHeatings = new List<FloorHeating>();
-            tVs = new List<TV>();
-            switchSockets = new List<SwitchSocket>();
-            fans = new List<Fan>();
-            sensorsEnvironmentalScience = new List<Sensor>();
-            functions = new List<Function>();
+            Functions = new List<Function>();
+            _FunctionList = null;
         }
 
         /// <summary>
-        /// 娣诲姞鍔熻兘
+        /// 鍔熻兘缁戝畾鎴块棿
         /// </summary>
-        /// <param name="sidObj"></param>
-        public void AddDeviceFunction(Function sidObj0)
+        public string FunctionsBindRooms(List<string> roomIds,List<string> deviceIds)
         {
-            switch (sidObj0.functionType)
+            var pm = new HttpServerRequest();
+            var pack = pm.BindDeviceToRoom(deviceIds, roomIds);
+            if(pack.Code == StateCode.SUCCESS)
             {
-                case FunctionType.AC:
-                    var sidObj =  Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
-                    DB_ResidenceData.residenceData.functionList.aCs.Add(sidObj);
-                    break;
-                case FunctionType.FloorHeating:
-                    var sidObj1 =  Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
-                    DB_ResidenceData.residenceData.functionList.floorHeatings.Add(sidObj1);
-                    break;
-                case FunctionType.Dimmer:
-                case FunctionType.RGB:
-                case FunctionType.Relay:
-                    var sidObj2 =  Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
-                    DB_ResidenceData.residenceData.functionList.lights.Add(sidObj2);
-                    break;
-                case FunctionType.Curtain:
-                    var sidObj3 =  Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
-                    DB_ResidenceData.residenceData.functionList.curtains.Add(sidObj3 );
-                    break;
-                case FunctionType.TV:
-                    var sidObj4 =  Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
-                    DB_ResidenceData.residenceData.functionList.tVs.Add(sidObj4);
-                    break;
-                case FunctionType.Socket:
-                    var sidObj5 =  Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
-                    DB_ResidenceData.residenceData.functionList.switchSockets.Add(sidObj5);
-                    break;
-                case FunctionType.Fan:
-                    var sidObj6 =  Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
-                    DB_ResidenceData.residenceData.functionList.fans.Add(sidObj6);
-                    break;
-                case FunctionType.CO2:
-                case FunctionType.TVOC:
-                case FunctionType.PM25:
-                case FunctionType.Temp:
-                case FunctionType.Humidity:
-                    var sidObj7 =  Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
-                    DB_ResidenceData.residenceData.functionList.sensorsEnvironmentalScience.Add(sidObj7);
-                    break;
+
+            }
+            else
+            {
+                IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
+            }
+            return pack.Code;
+        }
+
+        /// <summary>
+        /// 鍒犻櫎鍦烘櫙
+        /// todo
+        /// </summary>
+        public void DeleteScene(Scene scene,bool upSevser)
+        {
+            if (upSevser)
+            {
+                var pm = new HttpServerRequest();
+                var packCode = pm.DeleteScene(scene.userSceneId);
+                if (packCode == StateCode.SUCCESS)
+                {
+                    FileUtlis.Files.DeleteFile(scene.savePath);
+                    List.scenes.Remove(scene);
+                }
+                else
+                {
+                    IMessageCommon.Current.ShowErrorInfoAlter(packCode);
+                }
+            }
+            else
+            {
+                FileUtlis.Files.DeleteFile(scene.savePath);
+                List.scenes.Remove(scene);
             }
         }
 
-        public void AddFunction(object obj)
+        /// <summary>
+        /// 鍒犻櫎鏈湴鍔熻兘鍙婃枃浠�
+        /// </summary>
+        public void DeleteFunction(Function delTemp)
         {
-            var f = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(obj.ToString());
-
-            switch (f.functionCategory)
-            {
-                case FunctionCategory.Thermostat:
-                    switch (f.functionType)
-                    {
-                        case FunctionType.AC:
-                            aCs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(obj.ToString()));
-                            break;
-                        case FunctionType.FloorHeating:
-                            floorHeatings.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(obj.ToString()));
-                            break;
-                    }
-                    break;
-                case FunctionCategory.Light:
-                    lights.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(obj.ToString()));
-                    break;
-                case FunctionCategory.Curtain:
-                    curtains.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(obj.ToString()));
-                    break;
-                case FunctionCategory.Electrical:
-                    switch(f.functionType)
-                    {
-                        case FunctionType.TV:
-                            electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(obj.ToString()));
-                            break;
-                        case FunctionType.WindPower:
-                            electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(obj.ToString()));
-                            break;
-                        case FunctionType.Fan:
-                            electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(obj.ToString()));
-                            break;
-                    }
-                    break;
-                case FunctionCategory.Sensor:
-                    switch(f.functionType)
-                    {
-                        case FunctionType.TVOC:
-                        case FunctionType.CO2:
-                        case FunctionType.PM25:
-                        case FunctionType.Humidity:
-                        //case FunctionType.Noise:
-                            sensorsEnvironmentalScience.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(obj.ToString()));
-                            break;
-                    }
-                    break;
-            }
+            Functions.Remove(Functions.Find((obj) => obj.deviceId == delTemp.deviceId));
+            FileUtlis.Files.DeleteFile(delTemp.savePath);
         }
 
+        bool lockReadFunctionStatus = false;
+
+        /// <summary>
+        /// 璇诲彇绗笁鏂硅澶囩姸鎬�
+        /// </summary>
+        public void Read3tyFunctionStatus()
+        {
+            //璇诲彇娑傞甫璁惧鐘舵��
+            if (GetDeviceFunctionList(SPK.BrandType.Tuya).Count > 0)
+            {
+                var page = new List<string>();
+                int count = 0;
+                foreach (var function in GetDeviceFunctionList(SPK.BrandType.Tuya))
+                {
+                    page.Add(function.deviceId);
+                    count++;
+                    if (count > 9)
+                    {
+                        DriverLayer.Control.Ins.ReadFunctionsInfo(page);
+                        page.Clear();
+                        count = 0;
+                    }
+                }
+                DriverLayer.Control.Ins.ReadFunctionsInfo(page);
+            }
+
+        }
+
+        /// <summary>
+        /// 璇诲彇鍏ㄩ儴鍔熻兘鐨勭姸鎬�
+        /// </summary>
+        public void ReadAllFunctionStatus()
+        {
+            if (lockReadFunctionStatus)
+            {
+                MainPage.Log($"澶氭杩涘叆--杩斿洖");
+                return;
+            }
+            new Thread(() =>
+            {
+                if (lockReadFunctionStatus)
+                {
+                    MainPage.Log($"澶氭杩涘叆--杩斿洖");
+                    return;
+                }
+                MainPage.Log($"杩涘叆--璇诲彇");
+                lockReadFunctionStatus = true;
+                try
+                {
+                    Read3tyFunctionStatus();
+
+                    if(DriverLayer.Control.Ins.GatewayOnline_Local)
+                    {
+                        foreach (var function in GetDeviceFunctionList(SPK.BrandType.Hdl))
+                        {
+                            switch (function.Spk_Prefix)
+                            {
+                                case FunctionCategory.Music:
+                                case FunctionCategory.DryContact:
+                                    continue;
+                            }
+                            DriverLayer.Control.Ins.SendReadCommand(function);
+                            //switch (function.Spk_Prefix)
+                            //{
+                            //    case FunctionCategory.Light:
+                            //    case FunctionCategory.Electric:
+                            //    case FunctionCategory.Curtain:
+                            //    case FunctionCategory.AC:
+                            //    case FunctionCategory.FloorHeat:
+                            //    case FunctionCategory.Sensor:
+                            //        DriverLayer.Control.Ins.SendReadCommand(function);
+                            //        break;
+                            //}
+                        }
+                    }
+                    else
+                    {
+                        var page = new List<string>();
+                        int count = 0;
+
+                        foreach (var function in GetDeviceFunctionList(SPK.BrandType.Hdl))
+                        {
+                            page.Add(function.deviceId);
+                            count++;
+                            if (count > 9)
+                            {
+                                DriverLayer.Control.Ins.SendApiReadCommand(page);
+                                page.Clear();
+                                count = 0;
+                            }
+                        }
+                        DriverLayer.Control.Ins.SendApiReadCommand(page);
+                    }
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log($"Refresh Residence Function Status Error : {ex.Message}");
+                }
+                finally
+                {
+                    lockReadFunctionStatus = false;
+                    MainPage.Log($"缁撴潫--璇诲彇");
+                }
+
+                
+            })
+            { IsBackground = true }.Start();
+        }
+
+        #region 鍦烘櫙鐩稿叧
+        /// <summary>
+        /// 娣诲姞鍦烘櫙
+        /// </summary>
+        public string AddScene(Scene scene, out Scene result)
+        {
+            Scene tempScene = null;
+            var pm = new HttpServerRequest();
+            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;
+            }
+            else
+            {
+                result = tempScene;
+            }
+            return revPack.Code;
+        }
+        #endregion
+
+        #region 鏀惰棌鍔熻兘
+     
+        /// <summary>
+        /// 鏀惰棌鍦烘櫙
+        /// </summary>
+        public string CollectScene(Scene scene)
+        {
+            var result = "";
+            if (scene.collect)
+            {
+                result = ApiUtlis.Ins.HttpRequest.CollectDevice(scene.userSceneId).Code;
+            }
+            else
+            {
+                result = ApiUtlis.Ins.HttpRequest.CancelCollectDevice(scene.userSceneId).Code;
+            }
+
+            //鎻愮ず閿欒
+            if (result != StateCode.SUCCESS)
+            {
+                IMessageCommon.Current.ShowErrorInfoAlter(result);
+            }
+
+            return result;
+        }
+
+        #endregion 
+
+
+        #region 
+       
+
+
+        #endregion
     }
-    
+
 }

--
Gitblit v1.8.0