From 1f6f024bddf48dea1c17c54ade1535a10ef7b39b Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期一, 23 三月 2020 17:16:37 +0800
Subject: [PATCH] 2020-03-23-2

---
 ZigbeeApp/Shared/Phone/Device/Logic/Method.cs |   74 ++++++++++++++++++++++++-------------
 1 files changed, 48 insertions(+), 26 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs
index 7aecfbb..16cbc62 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs
@@ -21,8 +21,7 @@
         /// <param name="device">Device.</param>
         public static void RoomNmae(Button button, CommonDevice device)
         {
-            var room = new Common.Room();
-            button.Text = room.GetRoomNameByDevice(device);
+            button.Text = UserCenter.HdlRoomLogic.Current.GetRoomNameByDevice(device);
         }
         /// <summary>
         /// 杩斿洖妤煎眰鎵�鏈夌殑鎴块棿鐨勫垪琛�
@@ -33,11 +32,12 @@
         public static List<Common.Room> GetRoomList(string type, string floorId = null)
         {
             var list = new List<Common.Room>();
-            for (int i = 0; i < Common.Room.Lists.Count; i++)
+            var listAllRoom = UserCenter.HdlRoomLogic.Current.GetAllListRooms();
+            for (int i = 0; i < listAllRoom.Count; i++)
             {
                 if (type == "action_logicscene" || type == "action_lockscene")
                 {
-                    if (Common.Room.Lists[i].SceneUIList.Count == 0)
+                    if (listAllRoom[i].ListSceneId.Count == 0)
                     {   ///杩囨护鎺夋病鏈夊満鏅殑鎴块棿
                         continue;
                     }
@@ -46,14 +46,14 @@
                 {
                     ///鍖哄垎鍑鸿緭鍏ユ潯浠跺拰杈撳嚭鐩爣璁惧
                     var listdevicetype = GetDevice(type);
-                    var listdevice = GetDeviceUIList(Common.Room.Lists[i], listdevicetype);
+                    var listdevice = GetDeviceUIList(listAllRoom[i], listdevicetype);
                     if (listdevice.Count == 0)
                     {
                         ///杩囨护鎺夋病鏈夎澶囩殑鎴块棿
                         continue;
                     }
                 }
-                list.Add(Common.Room.Lists[i]);
+                list.Add(listAllRoom[i]);
             }
             if (string.IsNullOrEmpty(floorId))
             {
@@ -69,16 +69,17 @@
         /// <param name="room">褰撳墠鎴块棿</param>
         /// <param name="deviceTypelist">璁惧绫诲瀷</param>
         /// <returns></returns>
-        public static List<DeviceUI> GetDeviceUIList(Common.Room room, List<DeviceType> deviceTypelist)
+        public static List<CommonDevice> GetDeviceUIList(Common.Room room, List<DeviceType> deviceTypelist)
         {
-            var deviceUIlist = new List<DeviceUI>();
-            foreach (var device in room.DeviceUIList)
+            var deviceUIlist = new List<CommonDevice>();
+            foreach (var deviceKey in room.ListDevice)
             {
-                if (device.CommonDevice == null)
+                var device = LocalDevice.Current.GetDevice(deviceKey);
+                if (device == null)
                 {
                     continue;
                 }
-                if (!deviceTypelist.Contains(device.CommonDevice.Type))
+                if (!deviceTypelist.Contains(device.Type))
                 {
                     //杩囨护鎺変笉鏀寔鐨勮澶�
                     continue;
@@ -90,44 +91,43 @@
         /// <summary>
         /// 鎺掑垪鎵�鏈夎澶囩被鍨嬬殑鍒楄〃
         /// </summary>
-        /// <param name="type">鍒ゆ柇瀛楃涓�</param>
         /// <param name="devicelist">璁惧鍒楄〃</param>
         /// <returns></returns>
-        public static List<string> GetDeviceTypeList(string type, List<DeviceUI> devicelist)
+        public static List<string> GetDeviceTypeList(List<CommonDevice> devicelist)
         {
             List<string> devicetypelist = new List<string>();
             devicetypelist.Clear();
-            var lightjosn = devicelist.Find((device) => device.CommonDevice.Type == DeviceType.ColorDimmableLight || device.CommonDevice.Type == DeviceType.OnOffOutput);
+            var lightjosn = devicelist.Find((device) => device.Type == DeviceType.DimmableLight || device.Type == DeviceType.OnOffOutput);
             if (lightjosn != null)
             {
                 devicetypelist.Add(Language.StringByID(MyInternationalizationString.Lights));
             }
-            var iASZonejosn = devicelist.Find((device) => device.CommonDevice.Type == DeviceType.IASZone || device.CommonDevice.Type == DeviceType.TemperatureSensor);
+            var iASZonejosn = devicelist.Find((device) => device.Type == DeviceType.IASZone || device.Type == DeviceType.TemperatureSensor);
             if (iASZonejosn != null)
             {
                 devicetypelist.Add(Language.StringByID(MyInternationalizationString.sensor));
             }
-            var onOffSwitchjson = devicelist.Find((device) => device.CommonDevice.Type == DeviceType.OnOffSwitch);
+            var onOffSwitchjson = devicelist.Find((device) => device.Type == DeviceType.OnOffSwitch);
             if (onOffSwitchjson != null)
             {
                 devicetypelist.Add(Language.StringByID(MyInternationalizationString.OnOffSwitch));
             }
-            var doorLock = devicelist.Find((device) => device.CommonDevice.Type == DeviceType.DoorLock);
+            var doorLock = devicelist.Find((device) => device.Type == DeviceType.DoorLock);
             if (doorLock != null)
             {
                 devicetypelist.Add(Language.StringByID(MyInternationalizationString.doorLock));
             }
-            var curtainjosn = devicelist.Find((device) => device.CommonDevice.Type == DeviceType.WindowCoveringDevice);
+            var curtainjosn = devicelist.Find((device) => device.Type == DeviceType.WindowCoveringDevice);
             if (curtainjosn != null)
             {
                 devicetypelist.Add(Language.StringByID(MyInternationalizationString.Curtains));
             }
-            var ac = devicelist.Find((device) => device.CommonDevice.Type == DeviceType.Thermostat);
+            var ac = devicelist.Find((device) => device.Type == DeviceType.Thermostat);
             if (ac != null)
             {
                 devicetypelist.Add(Language.StringByID(MyInternationalizationString.AC));
             }
-            var airSwitch = devicelist.Find((device) => device.CommonDevice.Type == DeviceType.AirSwitch);
+            var airSwitch = devicelist.Find((device) => device.Type == DeviceType.AirSwitch);
             if (airSwitch != null)
             {
                 devicetypelist.Add(Language.StringByID(MyInternationalizationString.Airswitch));
@@ -224,11 +224,11 @@
         /// </summary>
         /// <param name="device">璁惧瀵硅薄</param>
         /// <param name="button">鏄剧ず鍥炬爣鐨勬帶浠�</param>
-        public static void GetDeviceIcon(DeviceUI device, Button button)
+        public static void GetDeviceIcon(CommonDevice device, Button button)
         {
             string patm = "";
             string selectedpatm = "";
-            switch (device.CommonDevice.Type)
+            switch (device.Type)
             {
                 case DeviceType.OnOffOutput:
                     {
@@ -238,7 +238,7 @@
                     break;
                 case DeviceType.IASZone:
                     {
-                        var iASZonedevice = device.CommonDevice as IASZone;
+                        var iASZonedevice = device as IASZone;
                         if (iASZonedevice.DeviceID != 1026)
                         {
                             break;
@@ -249,7 +249,7 @@
                     break;
                 case DeviceType.TemperatureSensor:
                     {
-                        var temperatureSensor = device.CommonDevice as TemperatureSensor;
+                        var temperatureSensor = device as TemperatureSensor;
                         if (temperatureSensor.SensorDiv == 1)
                         {
                             patm = $"ZigeeLogic/temperature.png";
@@ -325,12 +325,16 @@
                     }
                     break;
                 case "action_logic":
-                    { //鑷姩鍖栨敮鎸佺殑鐩爣璁惧
+                    {
+
+                        //鑷姩鍖栨敮鎸佺殑鐩爣璁惧
                         deviceTypeList.Add(DeviceType.OnOffOutput);
                         deviceTypeList.Add(DeviceType.DimmableLight);
                         deviceTypeList.Add(DeviceType.WindowCoveringDevice);
                         deviceTypeList.Add(DeviceType.Thermostat);
                         deviceTypeList.Add(DeviceType.AirSwitch);
+                        ///闂ㄩ攣鐗规畩
+                        deviceTypeList.Add(DeviceType.DoorLock);
                     }
                     break;
                 case "condition_mould":
@@ -351,6 +355,8 @@
                         deviceTypeList.Add(DeviceType.WindowCoveringDevice);
                         deviceTypeList.Add(DeviceType.Thermostat);
                         deviceTypeList.Add(DeviceType.AirSwitch);
+                        ///闂ㄩ攣鐗规畩
+                        deviceTypeList.Add(DeviceType.DoorLock);
                     }
                     break;
 
@@ -648,6 +654,7 @@
             custompushview.iconBtn.Visible = true;
             custompushview.iconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
             custompushview.titleBtn.TextID = MyInternationalizationString.custompush;
+            custompushview.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
             middle.AddChidren(custompushview.AddDeviceView());
 
             EventHandler<MouseEventArgs> customclick = (sender, e) =>
@@ -668,6 +675,7 @@
                     LogicView.IfString.Tag = true;
                     custompushview.frameLayout.Height = Application.GetRealHeight(160);
                     Common.Logic.CurrentLogic.LogicIsCustomPushText = 1;
+                    pushview.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor;
 
                 }
                 else
@@ -675,6 +683,7 @@
                     LogicView.IfString.Tag = false;
                     custompushview.frameLayout.Height = Application.GetRealHeight(0);
                     Common.Logic.CurrentLogic.LogicIsCustomPushText = 0;
+                    pushview.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
                 }
                 Send.Zj(LogicView.IfString.Tag, Common.Logic.CurrentLogic);
             };
@@ -684,12 +693,14 @@
                 LogicView.IfString.Tag = false;
                 pushview.switchBtn.IsSelected = false;
                 custompushview.frameLayout.Height = Application.GetRealHeight(0);
+                pushview.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
             }
             else
             {
                 LogicView.IfString.Tag = true;
                 pushview.switchBtn.IsSelected = true;
                 custompushview.frameLayout.Height = Application.GetRealHeight(160);
+                pushview.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor;
             }
         }
         /// <summary>
@@ -768,6 +779,17 @@
             }
 
         }
-
+        /// <summary>
+        /// 璺冲叆杈撳嚭鐩爣鍔熻兘鐣岄潰鐨勬柟娉�
+        /// </summary>
+        /// <param name="str1">璁惧鐣岄潰璇嗗埆瀛楃涓�</param>
+        /// <param name="str2">鍦烘櫙鐣岄潰璇嗗埆瀛楃涓�</param>
+        public static void View(string str1, string str2)
+        {
+            var deviceTarget = new DeviceTarget();
+            UserView.HomePage.Instance.AddChidren(deviceTarget);
+            UserView.HomePage.Instance.PageIndex += 1;
+            deviceTarget.Show(str1, str2);
+        }
     }
 }

--
Gitblit v1.8.0