From 2109463fab2eb1caed189e4f258e0e763c5cea7b Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期四, 07 十一月 2019 11:58:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev-tzy' into dev-wjc

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs |  200 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 200 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs
index 1991435..63cb01f 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs
@@ -15,6 +15,205 @@
         /// 褰撳墠鎸夐敭閰嶇疆鐨勫姛鑳�
         /// </summary>
         public static int clusterID = 0;
+        /// <summary>
+        /// 璁板綍鏃х殑鐩爣鍒楄〃
+        /// </summary>
+        public static List<CommonDevice> oldTargetList = new List<CommonDevice>();
+
+        public static async System.Threading.Tasks.Task<int> RemoveTargets(BindObj.BindListResponseObj bindDevice, Panel currentKey)
+        {
+            var delDevice = new BindObj.DelDeviceBindData();
+            delDevice.DeviceAddr = currentKey.DeviceAddr;
+            delDevice.Epoint = currentKey.DeviceEpoint;
+
+            if (bindDevice.BindType == 0 || bindDevice.BindType == 1)
+            {
+                var removeDevice = new BindObj.RemoveBindListObj();
+                removeDevice.BindCluster = bindDevice.BindCluster;
+                removeDevice.BindType = 0;
+                removeDevice.BindMacAddr = bindDevice.BindMacAddr;
+                removeDevice.BindEpoint = bindDevice.BindEpoint;
+                delDevice.RemoveBindList.Add(removeDevice);
+            }
+            else if (bindDevice.BindType == 2)
+            {
+                var removeDevice = new BindObj.RemoveBindListObj();
+                removeDevice.BindCluster = bindDevice.BindCluster;
+                removeDevice.BindType = 1;
+                removeDevice.BindScenesId = bindDevice.BindScenesId;
+                delDevice.RemoveBindList.Add(removeDevice);
+            }
+            var delResult = await currentKey.DelDeviceBindAsync(delDevice);
+            foreach (var re in delResult.delDeviceBindResponseData.RemoveBindList)
+            {
+                switch (re.Result)
+                {
+                    case 0:
+                        return 0;
+                        break;
+                    case 4:
+
+                        if (delResult.removeBindResultResponseData != null)
+                        {
+                            if (delResult.removeBindResultResponseData.Result == 0)
+                            {
+                                return 0;
+                            }
+                        }
+                        break;
+                }
+            }
+            return -1;
+        }
+
+        /// <summary>
+        /// 妫�娴嬭璁惧鑳藉惁鏄剧ず
+        /// </summary>
+        /// <param name="device"></param>
+        /// <returns></returns>
+        public static bool CheckCanShowDevice(ZigBee.Device.CommonDevice device, string curDeviceBindType = "AddSwitch")
+        {
+            if (device == null)
+            {
+                return false;
+            }
+            //濡傛灉鏄紶鎰熷櫒锛屾垨鑰呮槸娌℃湁寮�鍏崇皣鐨勮瘽(杩欓噷鍒ゆ柇鐨勬槸杈撳叆绨�)
+            if ((device.Type == ZigBee.Device.DeviceType.IASZone) || InMatchDevice(device, curDeviceBindType) == false)
+            {
+                return false;
+            }
+            return true;
+        }
+
+        /// <summary>
+        /// 妫�娴嬭鎴块棿鑳藉惁鏄剧ず
+        /// </summary>
+        /// <param name="room"></param>
+        /// <returns></returns>
+        public static bool CheckCanShowRoom(Common.Room room, string curDeviceBindType = "AddSwitch")
+        {
+            if (room.DeviceUIList.Count == 0)
+            {
+                return false;
+            }
+            if (room.IsLove == true)
+            {
+                return false;
+            }
+            foreach (var deviceUi in room.DeviceUIList)
+            {
+                //妫�娴嬭璁惧鑳藉惁鏄剧ず
+                if (CheckCanShowDevice(deviceUi.CommonDevice, curDeviceBindType) == false)
+                {
+                    continue;
+                }
+
+                //瀛樺湪璁惧鐨勮瘽锛屾鎴块棿鍙互鏄剧ず
+                return true;
+            }
+            return false;
+        }
+
+        /// <summary>
+        /// 妫�娴嬭澶囨槸鍚︽嫢鏈夊紑鍏崇殑鍔熻兘(杈撳叆绨�)
+        /// </summary>
+        /// <param name="device"></param>
+        /// <returns></returns>
+        public static bool InMatchDevice(CommonDevice device, string curDeviceBindType = "AddSwitch")
+        {
+            foreach (var data in device.InClusterList)
+            {
+                switch (curDeviceBindType)
+                {
+                    case "AddSwitch":
+                        //鎷ユ湁on/off鍔熻兘鐨勶紝鎵嶆敮鎸佹祴璇�
+                        if (data.InCluster == 6)
+                        {
+                            return true;
+                        }
+                        break;
+                    case "AddDimmer":
+                        if (data.InCluster == 8)
+                        {
+                            return true;
+                        }
+                        break;
+                    case "AddCurtain":
+                        if (data.InCluster == 258)
+                        {
+                            return true;
+                        }
+                        break;
+                }
+            }
+            return false;
+        }
+
+        /// <summary>
+        /// 搴曢儴瀹屾垚鎸夐挳鏄剧ず
+        /// </summary>
+        /// <returns></returns>
+        public static void FinishDisplay(List<Room> roomTempList, Button btnFinish)
+        {
+            if (roomTempList.Count == 0)
+            {
+                btnFinish.Enable = false;
+                btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+            }
+            else
+            {
+                btnFinish.Enable = true;
+                btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+            }
+        }
+
+        /// <summary>
+        /// 鑾峰彇褰撳墠妤煎眰鍚嶇О
+        /// </summary>
+        /// <returns></returns>
+        public static string GetCurrentKeyAllRoomList()
+        {
+            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
+            foreach (var floorId in dicFloor.Keys)
+            {
+                //绗竴涓ゼ灞�
+                return dicFloor[floorId];
+                break;
+            }
+            return null;
+        }
+
+        /// <summary>
+        /// 鑾峰彇褰撳墠妤煎眰
+        /// </summary>
+        /// <returns></returns>
+        public static string GetCurrentSelectFloorId()
+        {
+            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
+            foreach (var floorId in dicFloor.Keys)
+            {
+                //绗竴涓ゼ灞�
+                return floorId;
+                break;
+            }
+            return null;
+        }
+
+        /// <summary>
+        /// 鑾峰彇褰撳墠妤煎眰鍚嶇О
+        /// </summary>
+        /// <returns></returns>
+        public static string GetCurrentSelectFloorIdName()
+        {
+            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
+            foreach (var floorId in dicFloor.Keys)
+            {
+                //绗竴涓ゼ灞�
+                return dicFloor[floorId];
+                break;
+            }
+            return null;
+        }
 
         /// <summary>
         ///  妫�娴嬫帶鍒堕潰鏉�(鎸夐敭绫�)鎵�鎷ユ湁鐨勫姛鑳�,鐜版敮鎸佺殑鏈変互涓嬪嚑绉�(蹇呭畾瀛樺湪閿��,鍑洪敊浼氳繑鍥瀗ull)
@@ -617,5 +816,6 @@
         //    };
         //}
 
+
     }
 }

--
Gitblit v1.8.0