From 7b43f0f5c5dca88576efc0bb51bf95b523de90c9 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期五, 10 七月 2020 11:33:06 +0800
Subject: [PATCH] 2020-07-10 1.修复窗帘定时器发送控制失败问题。

---
 Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs |  106 ++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 88 insertions(+), 18 deletions(-)

diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs
index 8883165..b84d940 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs
@@ -77,7 +77,7 @@
                         });
                     }
                 } catch (Exception ex) {
-                    Console.WriteLine (ex.Message);
+                    Utlis.WriteLine (ex.Message);
                 } finally {
                     Application.RunOnMainThread (() => {
                         MainPage.Loading.Hide ();
@@ -88,7 +88,7 @@
             ItemButton.MouseUpEventHandler += (sender, e) => {
                 Action action = () => {
                     Application.RunOnMainThread (() => {
-                        MainPage.Loading.Start ("please wait...");
+                        MainPage.Loading.Start ("Please wait...");
                     });
                     System.Threading.Tasks.Task.Run (() => {
                         try {
@@ -98,7 +98,7 @@
                                 InitDevcieRow (alexaDeviceLista, bodyView);
                             });
                         } catch (Exception ex) {
-                            Console.WriteLine (ex.Message);
+                            Utlis.WriteLine (ex.Message);
                         } finally {
                             Application.RunOnMainThread (() => {
                                 MainPage.Loading.Hide ();
@@ -111,7 +111,7 @@
                     System.Threading.Tasks.Task.Factory.StartNew (() => {
                         try {
                             Application.RunOnMainThread (() => {
-                                MainPage.Loading.Start ("please wait...");
+                                MainPage.Loading.Start ("Please wait...");
                             });
                             foreach (var newDevicePath in roomDeviceFilePathList) {
                                 var common = Newtonsoft.Json.JsonConvert.DeserializeObject<Common> (CommonPage.MyEncodingUTF8.GetString (IO.FileUtils.ReadFile (newDevicePath)));
@@ -122,7 +122,11 @@
                                 if (common != null) {
                                     var oldDevice = alexaDeviceLista.Find ((obj) => obj.SubnetID == common.SubnetID && obj.DeviceID == common.DeviceID && obj.LoopID == common.LoopID && obj.DeviceType == common.Type.ToString ());
                                     if (oldDevice == null) {
-                                        AddDevice (common);
+                                        var isSuccess = AddDevice (common);
+                                        if (!isSuccess) {
+                                            //璺冲嚭寰幆
+                                            break;
+                                        }
                                     }
                                 }
                             }
@@ -131,7 +135,7 @@
 
                                 if (!roomDeviceFilePathList.Contains (oldDevicePath)) {
                                     DelDevice (oldDevice.Id);
-                                    Console.WriteLine ("delDevice " + oldDevice.DeviceName);
+                                    Utlis.WriteLine ("delDevice " + oldDevice.DeviceName);
                                 }
                             }
 
@@ -356,7 +360,11 @@
                                             }
                                         }
 
-                                        AddScene (uploadScene);
+                                        var isSuccess = AddScene (uploadScene);
+                                        if (!isSuccess) {
+                                            //璺冲嚭寰幆
+                                            break;
+                                        }
                                     }
                                 }
 
@@ -372,7 +380,7 @@
                             });
 
                         } catch (Exception ex) {
-                            Console.WriteLine (ex.Message);
+                            Utlis.WriteLine (ex.Message);
                         } finally {
                             Application.RunOnMainThread (() => {
                                 MainPage.Loading.Hide ();
@@ -384,7 +392,7 @@
                 System.Threading.Tasks.Task.Factory.StartNew (() => {
                     try {
                         Application.RunOnMainThread (() => {
-                            MainPage.Loading.Start ("please wait...");
+                            MainPage.Loading.Start ("Please wait...");
                         });
                         var tempRoom = new Room ();
                         foreach (var device in alexaDeviceLista) {//鐗规畩澶勭悊鏈嶅姟鍣ㄤ笌鏈湴璁惧绫诲瀷涓嶄竴鏍风殑璁惧
@@ -415,7 +423,7 @@
                             userDeviceListPage.ShowPage (action, saveAction);
                         });
                     } catch (Exception ex) {
-                        Console.WriteLine (ex.Message);
+                        Utlis.WriteLine (ex.Message);
                     } finally {
                         Application.RunOnMainThread (() => {
                             MainPage.Loading.Hide ();
@@ -434,9 +442,13 @@
             var deviceList = new List<UpdateDeviceObj> ();
             var requestObj = new GetDeviceListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id };
             var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
-            var revertObj = MainPage.RequestHttps (API.GetDeviceList, requestJson, true);
-            if (revertObj.StateCode.ToUpper() == "SUCCESS") {
-                deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UpdateDeviceObj>> (revertObj.ResponseData.ToString());
+            var revertObj = MainPage.RequestHttps (API.GetDeviceList, requestJson);
+            if (revertObj.StateCode.ToUpper () == "SUCCESS") {
+                deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UpdateDeviceObj>> (revertObj.ResponseData.ToString ());
+            } else {
+                //2020-06-29 寮圭獥鎻愮ず閿欒
+
+
             }
             return deviceList;
         }
@@ -459,11 +471,52 @@
             }
             //var requestObj = new UploadDevicesObj () { Device = uploadDevice };
             var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (uploadDevice);
-            var revertObj = MainPage.RequestHttps (API.UploadDevices, requestJson, true);
+            var revertObj = MainPage.RequestHttps (API.UploadDevices, requestJson);
             if (revertObj.StateCode.ToUpper() == "SUCCESS") {
                 return true;
+            }else if (revertObj.StateCode == "Exist") {
+                Application.RunOnMainThread (() => {
+                    MainPage.AddTip (ErrorCode.AddFailed + " " + ErrorCode.NameExist + " ( " + device.Name + " )");
+                });
+                return true;
+            } else {
+                //2020-06-29 寮瑰嚭鎻愮ず閿欒
+                ShowUploadDevicesInfo (revertObj.StateCode);
             }
             return false;
+        }
+
+        /// <summary>
+        /// 涓婁紶璁惧 閿欒鎻愮ず
+        /// </summary>
+        /// <param name="stateCodeStr"></param>
+        void ShowUploadDevicesInfo (string stateCodeStr)
+        {
+            string mes = "";
+            if (stateCodeStr == "NoRecord") {
+                //浣忓畢鏈粦瀹氱綉鍏筹紒
+                mes = ErrorCode.HomeNoRecord;
+            } else if (stateCodeStr == "NoExist") {
+                //浣忓畢涓嶅瓨鍦紒
+                mes = ErrorCode.HomeNoExist;
+            } else if (stateCodeStr == "Exist") {
+                //璁惧鍚嶇О宸插瓨鍦�
+                mes = ErrorCode.NameExist;
+            } else if (stateCodeStr == ErrorCode.NetworkError) {
+                mes = ErrorCode.NetworkError;
+            } else {
+                mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr;
+
+            }
+            if (!string.IsNullOrEmpty (mes)) {
+                Application.RunOnMainThread (() => {
+                    MainPage.AddTip (ErrorCode.AddFailed + " " + mes);
+
+                    //new Alert ("", ErrorCode.AddFailed + " " + mes, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+                });
+            }
+
+
         }
 
         /// <summary>
@@ -473,9 +526,12 @@
         {
             var requestObj = new DelDeviceObj () { Id = commonId };
             var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
-            var revertObj = MainPage.RequestHttps (API.DeleteDevice, requestJson, true);
+            var revertObj = MainPage.RequestHttps (API.DeleteDevice, requestJson);
             if (revertObj.StateCode.ToUpper() == "SUCCESS") {
                 return true;
+            } else {
+                //2020-06-29 寮圭獥鎻愮ず閿欒
+
             }
             return false;
         }
@@ -490,9 +546,11 @@
             var sceneList = new List<SceneByRegion> ();
             var requestObj = new SceneByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id };
             var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
-            var revertObj = MainPage.RequestHttps (API.GetSceneList, requestJson, true);
+            var revertObj = MainPage.RequestHttps (API.GetSceneList, requestJson);
             if (revertObj.StateCode.ToUpper() == "SUCCESS") {
                 sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SceneByRegion>> (revertObj.ResponseData.ToString ());
+            } else {
+                //2020-06-29 寮圭獥鎻愮ず閿欒
             }
             return sceneList;
         }
@@ -503,7 +561,7 @@
         public bool AddScene (SceneAndDeviceList sceneMark)
         {
             var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (sceneMark);
-            var revertObj = MainPage.RequestHttps (API.AddSceneAndDeviceList, requestJson, true);
+            var revertObj = MainPage.RequestHttps (API.AddSceneAndDeviceList, requestJson);
             if (revertObj.StateCode.ToUpper() == "SUCCESS") {
                 //var requestAddDeviceObj = new BindDeviceToSceneItemObj () { SceneId = sceneId, Command = command, DeviceID = 0, DataString = dataString };
                 //var requestAddDeviceJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestAddDeviceObj);
@@ -511,7 +569,16 @@
                 //if (revertAddDeviceObj.StateCode.ToUpper() == "SUCCESS") {
                     return true;
                 //}
+            } else if (revertObj.StateCode == "Exist") {
+                Application.RunOnMainThread (() => {
+                    MainPage.AddTip (ErrorCode.AddFailed + " " + ErrorCode.NameExist + " ( " + sceneMark.SceneName + " )");
+                });
+                return true;
+            } else {
+                //2020-06-29 寮瑰嚭鎻愮ず閿欒
+                ShowUploadDevicesInfo (revertObj.StateCode);
             }
+
             return false;
         }
 
@@ -536,9 +603,12 @@
         {
             var requestObj = new DeleteSceneObj () { Id = sceneId };
             var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
-            var revertObj = MainPage.RequestHttps (API.DeleteScene, requestJson, true);
+            var revertObj = MainPage.RequestHttps (API.DeleteScene, requestJson);
             if (revertObj.StateCode.ToUpper() == "SUCCESS") {
                 return true;
+            } else {
+                //2020-06-29 寮圭獥鎻愮ず閿欒
+
             }
             return false;
         }

--
Gitblit v1.8.0