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