From ac2ee45fadc64fe840bbba6264df3ca4622adb15 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期日, 12 一月 2020 16:06:13 +0800
Subject: [PATCH] 2020-01-12 1.优化修改。

---
 Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs |   62 ++++++++++++++++++++++++++-----
 1 files changed, 52 insertions(+), 10 deletions(-)

diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs
index 9e042ca..1aa9471 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs
@@ -25,7 +25,7 @@
         public void ShowPage (Timer timerTemp, List<Timer> listTimer, bool isEdit = false)
         {
             UserMiddle.SettingPageView.ScrollEnabled = false;
-            timerTemp.RegionID = UserConfig.Instance.CurrentRegion.RegionID;
+            timerTemp.RegionID = UserConfig.Instance.CurrentRegion.Id;
             #region topview
             var topView = new RowLayout () {
                 Y = Application.GetRealHeight (36),
@@ -431,11 +431,16 @@
                 timerTemp.RoomName = roomNameList [0];
             }
             btnRoomChoose.Text = timerTemp.RoomName;
-       
+
             #endregion
 
             #region Devices
-            timerControlDeviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<DeviceInfo>> (timerTemp.ControlDeviceData);//devicesControlDataList
+            try { 
+                timerControlDeviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<DeviceInfo>> (timerTemp.ControlDeviceData);//devicesControlDataList
+            } catch {
+                timerControlDeviceList = null;
+            }
+
             if (timerControlDeviceList == null)
                 timerControlDeviceList = new List<DeviceInfo> ();
 
@@ -572,7 +577,10 @@
                     //new Alert ("", "璇峰~鍐欏畾鏃跺櫒鍚嶇О!", "Close").Show ();
                     new Alert ("", "Please set name for the timer!", "Close").Show ();
                     return;
-                } else if (listTimer.Find ((obj) => obj.TimerName == timerTemp.TimerName) != null && !isEdit) {
+                } else if (listTimer.Find ((obj) => obj.TimerName == timerTemp.TimerName) != null && !isEdit) {//2020-01-09 缂栬緫鐨勬椂鍊欎篃鎻愮ず閲嶅鍚嶅瓧
+                    //if (isEdit) {
+
+                    //}
                     new Alert ("", "The timer name already exists. Please change it before saving it.", "Close").Show ();
                     return;
                 }
@@ -617,8 +625,8 @@
                     timerTemp.Periodicity = timerTemp.Periodicity.Remove (timerTemp.Periodicity.Length - 1, 1);
                 }
                 timerTemp.IsStart = true;
-                if (string.IsNullOrEmpty (timerTemp.Guid)) {
-                    timerTemp.Guid = Guid.NewGuid ().ToString ();
+                if (string.IsNullOrEmpty (timerTemp.Id)) {
+                    timerTemp.Id = Guid.NewGuid ().ToString ();
                 }
                 timerTemp.ControlDeviceData = Newtonsoft.Json.JsonConvert.SerializeObject (timerControlDeviceList);
                 MainPage.Loading.Start ("Saving...");
@@ -630,17 +638,19 @@
                         var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (timerTemp);
                         ResponsePack revertObj = null;
                         if (isEdit) {
-                            revertObj = MainPage.RequestHttps ("EditTimer", requestJson);
-                        } else {
-                            revertObj = MainPage.RequestHttps ("AddTimer", requestJson);
+                            revertObj = MainPage.RequestHttps (API.EditTimer, requestJson);
+                        } else {   
+                            revertObj = MainPage.RequestHttps (API.AddTimer, requestJson);
                         }
 
                         Application.RunOnMainThread (() => {
                             if (revertObj == null) {
                                 new Alert ("", "Unable to save data, please check the network.", "Close").Show ();
-                            } else if (revertObj.StateCode == "SUCCESS") {
+                            } else if (revertObj.StateCode.ToUpper() == "SUCCESS") {
                                 this.RemoveFromParent ();
                                 action (timerTemp);
+                            } else {
+                                ShowErrorInfo (revertObj.StateCode);
                             }
                         });
                     } catch (Exception ex) {
@@ -655,6 +665,38 @@
 
         }
 
+        /// <summary>
+        //(1)Success 鍒欒皟鐢ㄦ鎺ュ彛鎴愬姛
+        //(2)NoRecord 浣忓畢鏈粦瀹氱綉鍏筹紒
+        //(3)NoExist 浣忓畢涓嶅瓨鍦紒
+        //(4)Exist 鐢熸垚鐨凣uid宸插瓨鍦紒
+        /// </summary>
+        void ShowErrorInfo (string stateCodeStr)
+        {
+            string mes = "";
+            if (stateCodeStr == "NoRecord") {
+                // 浣忓畢鏈粦瀹氱綉鍏筹紒
+                mes = ErrorCode.HomeNoRecord;
+            } else if (stateCodeStr == "NoExist") {
+                //浣忓畢涓嶅瓨鍦紒
+                mes = ErrorCode.HomeNoExist;
+            } else if (stateCodeStr == "Exist") {
+                //鐢熸垚鐨凣uid宸插瓨鍦紒
+                mes = ErrorCode.GuidExist;
+            }  else if (stateCodeStr == ErrorCode.NetworkError) {
+                mes = ErrorCode.NetworkError;
+            } else {
+                mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr;
+
+            }
+            if (!string.IsNullOrEmpty (mes)) {
+                //Application.RunOnMainThread (() => {
+                new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+                //});
+            }
+
+        }
+
         private static void InitDeviceListView (List<Common> roomDeviceList, List<DeviceInfo> timerControlDeviceList, FrameLayout devicesListView)
         {
             devicesListView.RemoveAll ();

--
Gitblit v1.8.0