From 74a9ba8e9a2df9c39f9c2eb212a5ac889a055cd4 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期二, 03 十二月 2019 10:47:51 +0800
Subject: [PATCH] 优化UI细节(请合并最新代码)

---
 ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs |  321 ++++++++++++++++++++++++++--------------------------
 1 files changed, 161 insertions(+), 160 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs
index 79e9351..ebed365 100644
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs
@@ -317,134 +317,15 @@
         /// <summary>
         /// 瑙i櫎缁戝畾
         /// </summary>
-        public async System.Threading.Tasks.Task<DelDeviceBindResponseAllData> DelDeviceBindAsync(DelDeviceBindData delDeviceBindData)
-        {
-            return await System.Threading.Tasks.Task.Run(async () =>
-            {
-                DelDeviceBindResponseAllData responseData = null;
-                var mainGateway = ZbGateway.MainGateWay;
-                if (mainGateway == null)
-                {
-                    responseData = new DelDeviceBindResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
-                }
-
-                Action<string, string> action = (topic, message) =>
-                {
-                    var gatewayID = topic.Split('/')[0];
-                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-                    if (topic == gatewayID + "/" + "Error_Respon")
-                    {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
-
-                        if (temp == null)
-                        {
-                            responseData = new DelDeviceBindResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-                        }
-                        else
-                        {
-                            responseData = new DelDeviceBindResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-                        }
-                    }
-                    //鍦烘櫙绉婚櫎
-                    if (topic == gatewayID + "/" + "Bind/RemoveBind_Respon")
-                    {
-                        var gatewayTemp = new ZbGateway() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
-                        var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<DelDeviceBindResponseData>(jobject["Data"].ToString());
-
-                        if (tempData == null)
-                        {
-                            responseData = new DelDeviceBindResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                        }
-                        else
-                        {
-                            responseData = new DelDeviceBindResponseAllData { delDeviceBindResponseData = tempData };
-                            System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                        }
-                    }
-                    //璁惧绉婚櫎
-                    if (topic == gatewayID + "/" + "Bind/RemoveBindResult")
-                    {
-                        var gatewayTemp = new ZbGateway() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<RemoveBindResultResponseData>(jobject["Data"].ToString());
-
-                        if (tempData != null)
-                        {
-                            responseData = new DelDeviceBindResponseAllData { removeBindResultResponseData = tempData };
-                            System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                        }
-                    }
-                };
-                mainGateway.Actions += action;
-                System.Console.WriteLine("DeviceBind/DelBind_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
-                try
-                {
-                    if (delDeviceBindData != null)
-                    {
-                        var jObject = new JObject { { "DeviceAddr", delDeviceBindData.DeviceAddr }, { "Epoint", delDeviceBindData.Epoint }, { "Cluster_ID", 0 }, { "Command", 5003 } };
-                        var removeBindList = new JArray { };
-                        foreach (var removeBindInfo in delDeviceBindData.RemoveBindList)
-                        {
-                            if (removeBindInfo.BindType == 0)
-                            {
-                                var dInfo = new JObject{
-                            { "BindMacAddr",removeBindInfo.BindMacAddr},
-                         { "BindEpoint", removeBindInfo.BindEpoint} ,
-                         { "BindCluster", removeBindInfo.BindCluster} ,
-                         { "BindType",removeBindInfo.BindType}
-                            };
-                                removeBindList.Add(dInfo);
-                            }
-                            else if (removeBindInfo.BindType == 1)
-                            {
-                                var dInfo = new JObject{
-                         { "BindCluster", removeBindInfo.BindCluster} ,
-                         { "BindType",removeBindInfo.BindType},
-                         { "BindScenesId", removeBindInfo.BindScenesId}
-                            };
-                                removeBindList.Add(dInfo);
-                            }
-                        }
-                        var data = new JObject {
-                    {"RemoveBindList",removeBindList}
-                     };
-                        jObject.Add("Data", data);
-                        mainGateway.Send("Bind/RemoveBind", jObject.ToString());
-                    }
-                }
-                catch { }
-
-                var dateTime = DateTime.Now;
-                while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
-                {
-                    await System.Threading.Tasks.Task.Delay(10);
-                    if (responseData != null)
-                    {
-                        break;
-                    }
-                }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
-                {
-                    responseData = new DelDeviceBindResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
-                }
-                mainGateway.Actions -= action;
-                System.Console.WriteLine("DeviceBind/DelBind_Actions 閫�鍑�" + System.DateTime.Now.ToString());
-                return responseData;
-            });
-        }
-
-        //涔嬪墠2绉嶆柟寮忓弽棣堢粨鏋�
         //public async System.Threading.Tasks.Task<DelDeviceBindResponseAllData> DelDeviceBindAsync(DelDeviceBindData delDeviceBindData)
         //{
         //    return await System.Threading.Tasks.Task.Run(async () =>
         //    {
-        //        var responseData = new DelDeviceBindResponseAllData();
+        //        DelDeviceBindResponseAllData responseData = null;
         //        var mainGateway = ZbGateway.MainGateWay;
         //        if (mainGateway == null)
         //        {
-        //            responseData.errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�";
-        //            return responseData;
+        //            responseData = new DelDeviceBindResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
         //        }
 
         //        Action<string, string> action = (topic, message) =>
@@ -459,15 +340,14 @@
 
         //                if (temp == null)
         //                {
-        //                    responseData.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
+        //                    responseData = new DelDeviceBindResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
         //                }
         //                else
         //                {
-        //                    responseData.errorResponData = temp;
-        //                    responseData.errorMessageBase = ErrorMess(temp.Error);
+        //                    responseData = new DelDeviceBindResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
         //                }
         //            }
-
+        //            //鍦烘櫙绉婚櫎
         //            if (topic == gatewayID + "/" + "Bind/RemoveBind_Respon")
         //            {
         //                var gatewayTemp = new ZbGateway() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
@@ -475,16 +355,15 @@
 
         //                if (tempData == null)
         //                {
-        //                    responseData.errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�";
-
+        //                    responseData = new DelDeviceBindResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
         //                }
         //                else
         //                {
-        //                    responseData.delDeviceBindResponseData = tempData;
+        //                    responseData = new DelDeviceBindResponseAllData { delDeviceBindResponseData = tempData };
         //                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
         //                }
         //            }
-
+        //            //璁惧绉婚櫎
         //            if (topic == gatewayID + "/" + "Bind/RemoveBindResult")
         //            {
         //                var gatewayTemp = new ZbGateway() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = mainGateway.getGatewayBaseInfo.gwID };
@@ -492,7 +371,7 @@
 
         //                if (tempData != null)
         //                {
-        //                    responseData.removeBindResultResponseData = tempData;
+        //                    responseData = new DelDeviceBindResponseAllData { removeBindResultResponseData = tempData };
         //                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
         //                }
         //            }
@@ -531,7 +410,6 @@
         //            {"RemoveBindList",removeBindList}
         //             };
         //                jObject.Add("Data", data);
-        //                //ZbGateway.MainGateWay.CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo?.gwID;
         //                mainGateway.Send("Bind/RemoveBind", jObject.ToString());
         //            }
         //        }
@@ -540,46 +418,168 @@
         //        var dateTime = DateTime.Now;
         //        while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
         //        {
-        //            await System.Threading.Tasks.Task.Delay(100);
-        //            if (responseData == null || responseData.delDeviceBindResponseData == null)
-        //            {
-        //                continue;
-        //            }
-        //            if (0 < responseData.delDeviceBindResponseData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 1).Count)
-        //            {
-        //                if (responseData.removeBindResultResponseData != null)
-        //                {
-        //                    break;
-        //                }
-        //            }
-        //            else if (0 < responseData.delDeviceBindResponseData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 3).Count)
-        //            {
-        //                if (responseData.removeBindResultResponseData != null)
-        //                {
-        //                    break;
-        //                }
-        //            }
-        //            else if (0 < responseData.delDeviceBindResponseData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 4).Count)
-        //            {
-        //                if (responseData.removeBindResultResponseData != null)
-        //                {
-        //                    break;
-        //                }
-        //            }
-        //            else
+        //            await System.Threading.Tasks.Task.Delay(10);
+        //            if (responseData != null)
         //            {
         //                break;
         //            }
         //        }
         //        if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
         //        {
-        //            responseData.errorMessageBase = "鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔";
+        //            responseData = new DelDeviceBindResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
         //        }
         //        mainGateway.Actions -= action;
         //        System.Console.WriteLine("DeviceBind/DelBind_Actions 閫�鍑�" + System.DateTime.Now.ToString());
         //        return responseData;
         //    });
         //}
+
+        //涔嬪墠2绉嶆柟寮忓弽棣堢粨鏋�
+        public async System.Threading.Tasks.Task<DelDeviceBindResponseAllData> DelDeviceBindAsync(DelDeviceBindData delDeviceBindData)
+        {
+            return await System.Threading.Tasks.Task.Run(async () =>
+            {
+                var responseData = new DelDeviceBindResponseAllData();
+                var mainGateway = ZbGateway.MainGateWay;
+                if (mainGateway == null)
+                {
+                    responseData.errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�";
+                    return responseData;
+                }
+
+                Action<string, string> action = (topic, message) =>
+                {
+                    var gatewayID = topic.Split('/')[0];
+                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+
+                    if (topic == gatewayID + "/" + "Error_Respon")
+                    {
+                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = mainGateway.getGatewayBaseInfo.gwID };
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+
+                        if (temp == null)
+                        {
+                            responseData.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
+                        }
+                        else
+                        {
+                            responseData.errorResponData = temp;
+                            responseData.errorMessageBase = ErrorMess(temp.Error);
+                        }
+                    }
+
+                    if (topic == gatewayID + "/" + "Bind/RemoveBind_Respon")
+                    {
+                        var gatewayTemp = new ZbGateway() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
+                        var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<DelDeviceBindResponseData>(jobject["Data"].ToString());
+
+                        if (tempData == null)
+                        {
+                            responseData.errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�";
+
+                        }
+                        else
+                        {
+                            responseData.delDeviceBindResponseData = tempData;
+                            System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+                        }
+                    }
+
+                    if (topic == gatewayID + "/" + "Bind/RemoveBindResult")
+                    {
+                        var gatewayTemp = new ZbGateway() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = mainGateway.getGatewayBaseInfo.gwID };
+                        var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<RemoveBindResultResponseData>(jobject["Data"].ToString());
+
+                        if (tempData != null)
+                        {
+                            responseData.removeBindResultResponseData = tempData;
+                            System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+                        }
+                    }
+                };
+                mainGateway.Actions += action;
+                System.Console.WriteLine("DeviceBind/DelBind_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
+                try
+                {
+                    if (delDeviceBindData != null)
+                    {
+                        var jObject = new JObject { { "DeviceAddr", delDeviceBindData.DeviceAddr }, { "Epoint", delDeviceBindData.Epoint }, { "Cluster_ID", 0 }, { "Command", 5003 } };
+                        var removeBindList = new JArray { };
+                        foreach (var removeBindInfo in delDeviceBindData.RemoveBindList)
+                        {
+                            if (removeBindInfo.BindType == 0)
+                            {
+                                var dInfo = new JObject{
+                            { "BindMacAddr",removeBindInfo.BindMacAddr},
+                         { "BindEpoint", removeBindInfo.BindEpoint} ,
+                         { "BindCluster", removeBindInfo.BindCluster} ,
+                         { "BindType",removeBindInfo.BindType}
+                            };
+                                removeBindList.Add(dInfo);
+                            }
+                            else if (removeBindInfo.BindType == 1)
+                            {
+                                var dInfo = new JObject{
+                         { "BindCluster", removeBindInfo.BindCluster} ,
+                         { "BindType",removeBindInfo.BindType},
+                         { "BindScenesId", removeBindInfo.BindScenesId}
+                            };
+                                removeBindList.Add(dInfo);
+                            }
+                        }
+                        var data = new JObject {
+                    {"RemoveBindList",removeBindList}
+                     };
+                        jObject.Add("Data", data);
+                        //ZbGateway.MainGateWay.CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo?.gwID;
+                        mainGateway.Send("Bind/RemoveBind", jObject.ToString());
+                    }
+                }
+                catch { }
+
+                var dateTime = DateTime.Now;
+                while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
+                {
+                    await System.Threading.Tasks.Task.Delay(100);
+                    if (responseData == null || responseData.delDeviceBindResponseData == null)
+                    {
+                        continue;
+                    }
+                    if (0 < responseData.delDeviceBindResponseData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 1).Count)
+                    {
+                        if (responseData.removeBindResultResponseData != null)
+                        {
+                            break;
+                        }
+                    }
+                    else if (0 < responseData.delDeviceBindResponseData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 3).Count)
+                    {
+                        if (responseData.removeBindResultResponseData != null)
+                        {
+                            break;
+                        }
+                    }
+                    else if (0 < responseData.delDeviceBindResponseData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 2).Count)
+                    {
+                        if (responseData.removeBindResultResponseData != null)
+                        {
+                            break;
+                        }
+                    }
+                    else
+                    {
+                        break;
+                    }
+                }
+                if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
+                {
+                    responseData.errorMessageBase = "鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔";
+                }
+                mainGateway.Actions -= action;
+                System.Console.WriteLine("DeviceBind/DelBind_Actions 閫�鍑�" + System.DateTime.Now.ToString());
+                return responseData;
+            });
+        }
 
         /// <summary>
         ///瑙i櫎缁戝畾鏁版嵁,缃戝叧鍙嶉淇℃伅
@@ -1123,7 +1123,8 @@
                         break;
                     }
                 }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
+                //涓�閿竻闄ょ洰鏍囷紝浼氬洜涓虹洰鏍囨暟閲忓鑰屽姞闀挎椂闂达紝鐩墠鏆傚畾10绉�
+                if ((DateTime.Now - dateTime).TotalMilliseconds > 10 * 1000)
                 {
                     d = new ClearBindInfoResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
                 }

--
Gitblit v1.8.0