From 5a5a2b696866f947b6025d26c3302e8ffef46435 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 11 一月 2021 16:11:20 +0800
Subject: [PATCH] 2021-01-11 1.更新MQTT连接和本地搜索网关方法。2.子账号相关接口完善

---
 Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs |  145 ++++++++++++++++++++++++++++++++++--------------
 1 files changed, 103 insertions(+), 42 deletions(-)

diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs
index b61d2bb..535402e 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs
@@ -75,7 +75,7 @@
                             UserMiddle.SettingPageView.PageIndex = 2;
                         });
                     }catch(Exception ex){
-                        Console.WriteLine (ex.Message);
+                        Utlis.WriteLine (ex.Message);
                     }
                     finally{
                         Application.RunOnMainThread (() => {
@@ -100,17 +100,20 @@
             MainPage.Loading.Start ("Please wait...");
             System.Threading.Tasks.Task.Run (() => {
                 try {
-                    var requestObj = new Timer () { RegionID = UserConfig.Instance.CurrentRegion.RegionID };
+                    var requestObj = new Timer () { RegionID = UserConfig.Instance.CurrentRegion.Id };
                     var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
-                    var revertObj = MainPage.RequestHttps ("GetTimerList", requestJson);
-                    if (revertObj.StateCode == "SUCCESS") {
+                    var revertObj = MainPage.RequestHttps (API.GetTimerList, requestJson);
+                    if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) {
                         timers = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Timer>> (revertObj.ResponseData.ToString ());
                         foreach (var schedule in timers) {
                             initSchedule (schedule);
                         }
+                    } else {
+                        //鎻愮ず閿欒
+                        ShowGetTimerListErrorInfo (revertObj.StateCode);
                     }
                 } catch (Exception ex) {
-                    Console.WriteLine (ex.Message);
+                    Utlis.WriteLine (ex.Message);
                 } finally {
                     Application.RunOnMainThread (() => {
                         MainPage.Loading.Hide ();
@@ -119,13 +122,42 @@
             });
         }
 
+        /// <summary>
+        //(1)Success 鍒欒皟鐢ㄦ鎺ュ彛鎴愬姛
+        //(2)NoRecord 浣忓畢鏈粦瀹氱綉鍏筹紒
+        //(3)NoExist 浣忓畢涓嶅瓨鍦紒
+        /// </summary>
+        void ShowGetTimerListErrorInfo (string stateCodeStr)
+        {
+            string mes = "";
+            if (stateCodeStr == "NoRecord") {
+                // 浣忓畢鏈粦瀹氱綉鍏筹紒
+                mes = ErrorCode.HomeNoRecord;
+            } else if (stateCodeStr == "NoExist") {
+                //浣忓畢涓嶅瓨鍦紒
+                mes = ErrorCode.HomeNoExist;
+            } 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 ();
+                });
+            }
+
+        }
+
+
         void reinitSchedule(Timer schedule)
         {
             for (int i = 0;i< bodyView.ChildrenCount;i++){
                 var view = bodyView.GetChildren (i);
                 if(view.GetType() == typeof(RowLayout)){
                    var  rowView = view as RowLayout;
-                    if (rowView.GetTagByKey("guid").ToString () == schedule.Guid) {
+                    if (rowView.GetTagByKey("guid").ToString () == schedule.Id) {
                         for (int j = 0; j < rowView.ChildrenCount; j++) {
                             var viewChilren = rowView.GetChildren (j);
                             if (viewChilren.GetType () == typeof (Button)) {
@@ -182,7 +214,7 @@
                     Height = Application.GetRealHeight (180),
                 };
                 bodyView.AddChidren (rowView);
-                rowView.AddTag ("guid", schedule.Guid);
+                rowView.AddTag ("guid", schedule.Id);
 
                 var btnScheduleName = new Button () {
                     X = Application.GetRealWidth (30),
@@ -195,7 +227,7 @@
                     Tag = "btnScheduleName",
                 };
                 rowView.AddChidren (btnScheduleName);
-                btnScheduleName.AddTag ("guid", schedule.Guid);
+                btnScheduleName.AddTag ("guid", schedule.Id);
 
                 var btnScheduleRoomName = new Button () {
                     X = btnScheduleName.Right,
@@ -207,7 +239,7 @@
                     Tag = "btnScheduleRoomName",
                 };
                 rowView.AddChidren (btnScheduleRoomName);
-                btnScheduleRoomName.AddTag ("guid", schedule.Guid);
+                btnScheduleRoomName.AddTag ("guid", schedule.Id);
 
                 var btnScheduleTime = new Button () {
                     X = Application.GetRealWidth (30),
@@ -221,7 +253,7 @@
                     Tag = "btnScheduleTime",
                 };
                 rowView.AddChidren (btnScheduleTime);
-                btnScheduleTime.AddTag ("guid", schedule.Guid);
+                btnScheduleTime.AddTag ("guid", schedule.Id);
 
                 var btnScheduleDay = new Button () {
                     X = Application.GetRealWidth (33),
@@ -234,7 +266,7 @@
                     Tag = "btnScheduleDay",
                 };
                 rowView.AddChidren (btnScheduleDay);
-                btnScheduleDay.AddTag ("guid", schedule.Guid);
+                btnScheduleDay.AddTag ("guid", schedule.Id);
 
                 if (schedule.Periodicity.Contains ("0")) {
                     btnScheduleDay.Text += "Sun ";
@@ -266,7 +298,7 @@
                     UnSelectedImagePath = "Item/SwitchClose.png",
                     SelectedImagePath = "Item/SwitchOpen.png",
                     IsSelected = schedule.IsStart,
-                    Tag = schedule.Guid
+                    Tag = schedule.Id
                 };
                 rowView.AddChidren (tempSiwtch);
 
@@ -275,16 +307,16 @@
                     MainPage.Loading.Start ("Loading");
                     System.Threading.Tasks.Task.Run (() => {
                         try {
-                            var switchObj = new Timer () { Guid = (sdd as Button).Tag.ToString () };
+                            var switchObj = new Timer () { Id = (sdd as Button).Tag.ToString () };
                             var switchRequestJson = Newtonsoft.Json.JsonConvert.SerializeObject (switchObj);
-                            var switchRevertObj = MainPage.RequestHttps ("IsEnableTimer", switchRequestJson);
-                            if (switchRevertObj.StateCode != "SUCCESS") {
+                            var switchRevertObj = MainPage.RequestHttps (API.IsEnableTimer, switchRequestJson);
+                            if (switchRevertObj.StateCode.ToUpper()  != StateCode.SUCCESS) {
                                 Application.RunOnMainThread (() => {
                                     tempSiwtch.IsSelected = !tempSiwtch.IsSelected;
                                 });
                             }
                         } catch (Exception ex) {
-                            Console.WriteLine (ex.Message);
+                            Utlis.WriteLine (ex.Message);
                         } finally {
                             Application.RunOnMainThread (() => {
                                 MainPage.Loading.Hide ();
@@ -296,17 +328,21 @@
                 Button btnDel = new Button () {
                     TextID = R.MyInternationalizationString.Del,
                     BackgroundColor = SkinStyle.Current.DelColor,
-                    Tag = schedule.Guid
+                    Tag = schedule.Id
                 };
                 rowView.AddRightView (btnDel);
                 btnDel.MouseUpEventHandler += (sender, er) => {
-                    var delObj = new Timer () { Guid = (sender as Button).Tag.ToString () };
-                    var delRequestJson = Newtonsoft.Json.JsonConvert.SerializeObject (delObj);
-                    var delRevertObj = MainPage.RequestHttps ("DeleteTimer", delRequestJson);
-                    if (delRevertObj.StateCode == "SUCCESS") {
-                        rowView.RemoveFromParent ();
-                        timers.Remove (timers.Find((obj) => obj.Guid == delObj.Guid));
-                    }
+                    if ((sender as Button).Tag == null) return;
+                    //string uuid = (sender as Button).Tag.ToString ();
+
+                    DeleteTimerAction ((sender as Button).Tag.ToString (), rowView, true);
+                    //var delObj = new Timer () { Guid = (sender as Button).Tag.ToString () };
+                    //var delRequestJson = Newtonsoft.Json.JsonConvert.SerializeObject (delObj);
+                    //var delRevertObj = MainPage.RequestHttps ("DeleteTimer", delRequestJson);
+                    //if (delRevertObj.StateCode.ToUpper() == StateCode.SUCCESS) {
+                    //    rowView.RemoveFromParent ();
+                    //    timers.Remove (timers.Find((obj) => obj.Guid == delObj.Guid));
+                    //}
                 };
 
                 #region goSchedule
@@ -335,12 +371,8 @@
                     alert.Show ();
                     alert.ResultEventHandler += (sender2, e2) => {
                         if (e2) {
-                            var delObj = new Timer () { Guid = (sender as Button).GetTagByKey ("guid").ToString () };
-                            var delRequestJson = Newtonsoft.Json.JsonConvert.SerializeObject (delObj);
-                            var delRevertObj = MainPage.RequestHttps ("DeleteTimer", delRequestJson);
-                            if (delRevertObj.StateCode == "SUCCESS") {
-                                rowView.RemoveFromParent ();
-                            }
+                            if ((sender as Button).GetTagByKey ("guid") == null) return;
+                            DeleteTimerAction ((sender as Button).GetTagByKey ("guid").ToString (), rowView);
                         }
                     };
                 };
@@ -352,12 +384,8 @@
                     alert.Show ();
                     alert.ResultEventHandler += (sender2, e2) => {
                         if (e2) {
-                            var delObj = new Timer () { Guid = (sender as Button).GetTagByKey ("guid").ToString () };
-                            var delRequestJson = Newtonsoft.Json.JsonConvert.SerializeObject (delObj);
-                            var delRevertObj = MainPage.RequestHttps ("DeleteTimer", delRequestJson);
-                            if (delRevertObj.StateCode == "SUCCESS") {
-                                rowView.RemoveFromParent ();
-                            }
+                            if ((sender as Button).GetTagByKey ("guid") == null) return;
+                            DeleteTimerAction ((sender as Button).GetTagByKey ("guid").ToString (), rowView);
                         }
                     };
                 };
@@ -369,12 +397,8 @@
                     alert.Show ();
                     alert.ResultEventHandler += (sender2, e2) => {
                         if (e2) {
-                            var delObj = new Timer () { Guid = (sender as Button).GetTagByKey ("guid").ToString () };
-                            var delRequestJson = Newtonsoft.Json.JsonConvert.SerializeObject (delObj);
-                            var delRevertObj = MainPage.RequestHttps ("DeleteTimer", delRequestJson);
-                            if (delRevertObj.StateCode == "SUCCESS") {
-                                rowView.RemoveFromParent ();
-                            }
+                            if ((sender as Button).GetTagByKey ("guid") == null) return;
+                            DeleteTimerAction ((sender as Button).GetTagByKey ("guid").ToString (), rowView);
                         }
                     };
                 };
@@ -383,5 +407,42 @@
             });
 
         }
+
+        /// <summary>
+        /// 鍒犻櫎瀹氭椂鍣�
+        /// </summary>
+        /// <param name="GUID"></param>
+        /// <param name="rowView"></param>
+        /// <param name="bTimersRemove"></param>
+        void DeleteTimerAction (string GUID, View rowView, bool bTimersRemove = false)
+        {
+            //2020-01-11
+            Application.RunOnMainThread (() => {
+                MainPage.Loading.Start ("Please wait...");
+            });
+
+            var delObj = new Timer () { Id = GUID };
+            var delRequestJson = Newtonsoft.Json.JsonConvert.SerializeObject (delObj);
+            var delRevertObj = MainPage.RequestHttps (API.DeleteTimer, delRequestJson);
+
+
+            if (delRevertObj.StateCode.ToUpper () == StateCode.SUCCESS) {
+                rowView.RemoveFromParent ();
+                if (bTimersRemove) {
+                    timers.Remove (timers.Find ((obj) => obj.Id == delObj.Id));
+                }
+            } else {
+                //鍒犻櫎澶辫触
+                Application.RunOnMainThread (() => {
+                    new Alert ("", ErrorCode.FailedDelete, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+                });
+            }
+
+            Application.RunOnMainThread (() => {
+                MainPage.Loading.Hide ();
+            });
+
+
+        }
     }
 }

--
Gitblit v1.8.0