From bbc74a6dae2e90a811b2507c5896fe89aa29ccc0 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 08 一月 2020 11:30:46 +0800
Subject: [PATCH] 2020-01-08 1.替换新服务器接口。

---
 Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs |  201 ++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 163 insertions(+), 38 deletions(-)

diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs
index 8fb12fd..5b6880d 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs
@@ -31,13 +31,20 @@
                         }) { IsBackground = true }.Start ();
                     });
                     // 璇诲彇浣忓畢鍒楄〃
-                    var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (new HomeListObj ());
-                    var revertObj2 = MainPage.RequestHttps ("HomeList", requestJson2);
-                    if (revertObj2.StateCode == "SUCCESS") {
-                        var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RegionInfoRes>> (revertObj2.ResponseData.ToString ());
+                    var requestObj2 = new GetHomePagerObj ();
+                    requestObj2.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString;
+
+                    var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2);
+                    var revertObj2 = MainPage.RequestHttps (API.GetHomePager, requestJson2);
+                    if (revertObj2.StateCode.ToUpper() == "SUCCESS") {
+                        var mResidenceRes = Newtonsoft.Json.JsonConvert.DeserializeObject<ResidenceRes> (revertObj2.ResponseData.ToString ());
+                        var responseDataObj = mResidenceRes.PageData;
+                        //if(responseDataObj == null && responseDataObj.Count == 0) {
+                        //    return;
+                        //}
                         UserConfig.Instance.HomeLists = responseDataObj;
-                        if (UserConfig.Instance.HomeLists.Count > 0) {
-                            if (string.IsNullOrEmpty (UserConfig.Instance.HomeLists [0].RegionName)) {
+                        if (responseDataObj != null && responseDataObj.Count > 0) {
+                            if (string.IsNullOrEmpty (UserConfig.Instance.HomeLists [0].Name)) {
                                 Application.RunOnMainThread (() => {
                                     MainPage.Loading.Hide ();
                                     this.RemoveFromParent ();
@@ -45,7 +52,7 @@
                                 });
                             }
                             UserConfig.Instance.SaveUserConfig ();
-                            UserConfig.Instance.CurrentRegion = responseDataObj.Find ((obj) => obj.RegionName == UserConfig.Instance.CurrentRegion.RegionName);
+                            UserConfig.Instance.CurrentRegion = responseDataObj.Find ((obj) => obj.Name == UserConfig.Instance.CurrentRegion.Name);
                         } else {
                             Application.RunOnMainThread (() => {
                                 MainPage.Loading.Hide ();
@@ -54,6 +61,8 @@
                             return;
                         }
                     } else {
+                        ShowGetHomePagerErrorInfo (revertObj2.StateCode);
+
                         Application.RunOnMainThread (() => {
                             MainPage.Loading.Hide ();
                             this.RemoveFromParent ();
@@ -76,6 +85,31 @@
                 needHide = false;
             }
         }) { IsBackground = true }.Start ();
+        }
+
+
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="stateCodeStr"></param>
+        void ShowGetHomePagerErrorInfo (string stateCodeStr)
+        {
+            string mes = "";
+            //2020-01-06 寰呰ˉ鍏�
+            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 ShowHomeListView (bool showDialog = true)
@@ -106,7 +140,7 @@
             };
             topView.AddChidren (ItemButton);
             ItemButton.MouseUpEventHandler += (sender1, e1) => {
-                GuideAddHomeDialog (new RegionInfoRes () { RegionID = "", RegionName = "" }, false);
+                GuideAddHomeDialog (new RegionInfoRes () { Id = "",  Name = "" }, false);
             };
             if (showDialog) {
                 var back = new Button () {
@@ -173,13 +207,13 @@
                 Gravity = Gravity.CenterVertical,
                 UnSelectedImagePath = "Item/Point.png",
                 SelectedImagePath = "Item/Point.png",
-                Visible = home.RegionID != UserConfig.Instance.CurrentRegion.RegionID
+                Visible = home.Id != UserConfig.Instance.CurrentRegion.Id
             };
             rowView.AddChidren (btnPoint);
 
             var btnName = new Button () {
                 Width = Application.GetRealWidth (390),
-                Text = home.RegionName,
+                Text = home.Name,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth (90),
                 TextColor = SkinStyle.Current.TextColor1,
@@ -203,7 +237,7 @@
             };
             rowView.AddChidren (rightButton1);
             EventHandler<MouseEventArgs> eHandler = (sender, e) => {
-                if (home.RegionID == UserConfig.Instance.CurrentRegion.RegionID) {
+                if (home.Id == UserConfig.Instance.CurrentRegion.Id) {
                     //UserConfig.Instance.GatewayMAC = gatewayMAC;
                     var addGatewayDialog = new GuideAddGateway ();
                     (Parent as PageLayout).AddChidren (addGatewayDialog);
@@ -216,14 +250,14 @@
                 rightButton1.MouseUpEventHandler += eHandler;
             goNextButton.MouseUpEventHandler += eHandler;
             btnName.MouseUpEventHandler += (sender,e)=> {
-                if (home.RegionID == UserConfig.Instance.CurrentRegion.RegionID) {
+                if (home.Id == UserConfig.Instance.CurrentRegion.Id) {
                     GuideAddHomeDialog (home, false,true, btnName);
                 } else {
                     ChangeRegion (home);
                 }
             };
 
-            if (home.RegionID == UserConfig.Instance.CurrentRegion.RegionID) {
+            if (home.Id == UserConfig.Instance.CurrentRegion.Id) {
                 Button btnCheck = new Button () {
                     X = Application.GetRealWidth (20),
                     Y = Application.GetRealHeight (25),
@@ -233,7 +267,7 @@
                 };
                 rowView.AddChidren (btnCheck);
             }
-            if (UserConfig.Instance.CurrentRegion.RegionID != home.RegionID && MainPage.LoginUser.AccountType != 1) {
+            if (UserConfig.Instance.CurrentRegion.Id != home.Id && MainPage.LoginUser.AccountType != 1) {
                 Button btnDel = new Button () {
                     TextID = R.MyInternationalizationString.Del,
                     BackgroundColor = SkinStyle.Current.DelColor,
@@ -329,15 +363,18 @@
                                 });
                                 var requestObj = new LoginObj () { Account = MainPage.LoginUser.AccountString, Password = password };
                                 var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
-                                var revertObj = MainPage.RequestHttps ("Login", requestJson, false, false);
-                                if (revertObj.StateCode == "SUCCESS") {
-                                    var requestObj2 = new DeleteHomeObj () { Id = home.RegionID };
+                                var revertObj = MainPage.RequestHttps (API.Login, requestJson, false, false);
+                                if (revertObj.StateCode.ToUpper() == "SUCCESS") {
+
+                                    var requestObj2 = new DelHomeObj () { HomeId = home.Id };
                                     var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2);
-                                    var revertObj2 = MainPage.RequestHttps ("DeleteHome", requestJson2);
-                                    if (revertObj2.StateCode == "SUCCESS") {
+                                    var revertObj2 = MainPage.RequestHttps (API.DelHome, requestJson2);
+                                    if (revertObj2.StateCode.ToUpper () == "SUCCESS") {
                                         Application.RunOnMainThread (() => {
                                             ShowHomeList ();
                                         });
+                                    } else {
+                                        ShowDelHomeErrorInfo (revertObj2.StateCode);
                                     }
                                 } else {
                                     Application.RunOnMainThread (() => {
@@ -361,6 +398,28 @@
 
         }
 
+        void ShowDelHomeErrorInfo (string stateCodeStr)
+        {
+            string mes = "";
+            if (stateCodeStr == "NoLogin") {
+                mes = ErrorCode.NoLogin;
+            } else if (stateCodeStr == "CurrentHomeExixtsGatewayBind") {
+                mes = ErrorCode.HomeIdAndTokenNoConsistent;
+            } else if (stateCodeStr == ErrorCode.NetworkError) {
+                mes = ErrorCode.NetworkError;
+            } else {
+                //RequestServerFailed
+                //mes = ErrorCode.AddFailed;
+                mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr;
+
+            }
+            if (!string.IsNullOrEmpty (mes)) {
+                Application.RunOnMainThread (() => {
+                    new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+                });
+            }
+        }
+
         /// <summary>
         /// 鏇存崲鏈湴鍖哄煙
         /// </summary>
@@ -374,10 +433,10 @@
                     //if (home.RegionID != UserConfig.Instance.CurrentRegion.RegionID) {
                     var backuplist = IO.FileUtils.ReadFiles ();
                     int index = 0;
-                    if (string.IsNullOrEmpty (UserConfig.Instance.CurrentRegion.RegionName)) {
+                    if (string.IsNullOrEmpty (UserConfig.Instance.CurrentRegion.Name)) {
                         UserConfig.Instance.CurrentRegion = UserConfig.Instance.HomeLists [0];
                     }
-                    string oldRegionRootPath = IO.FileUtils.CreateRegionBackup (UserConfig.Instance.CurrentRegion.RegionName);
+                    string oldRegionRootPath = IO.FileUtils.CreateRegionBackup (UserConfig.Instance.CurrentRegion.Name);
                     IO.FileUtils.DeleteRegionFiles (oldRegionRootPath);
                     foreach (var fileName in backuplist) {
                         System.IO.FileInfo fileInfo = new System.IO.FileInfo (IO.FileUtils.RootPath + fileName);
@@ -392,7 +451,7 @@
                         });
                     }
                     IO.FileUtils.DeleteAllFile ();
-                    string newRegionRootPath = IO.FileUtils.CreateRegionBackup (home.RegionName);
+                    string newRegionRootPath = IO.FileUtils.CreateRegionBackup (home.Name);
                     IO.FileUtils.RestoreRegionFiles (newRegionRootPath);
                     UserConfig.Instance.CurrentRegion = home;
                     UserConfig.Instance.SaveUserConfig ();
@@ -479,7 +538,7 @@
                 Radius = 5,
                 BorderColor = SkinStyle.Current.BorderColor,
                 BorderWidth = 2,
-                Text = home.RegionName,
+                Text = home.Name,
             };
             bodyView.AddChidren (etZoneName);
 
@@ -511,11 +570,11 @@
                     return;
                 }
                 if (isChangeName) {
-                    home.RegionName = button.Text = etZoneName.Text;
-                    var requestObj2 = new EditHomeObj () { Id = home.RegionID, Name = home.RegionName };
+                    home.Name = button.Text = etZoneName.Text;
+                    var requestObj2 = new EditHomeObj () { HomeId = home.Id, Name = home.Name };
                     var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2);
-                    var revertObj2 = MainPage.RequestHttps ("EditHome", requestJson2);
-                    IO.FileUtils.ReNameFoler (UserConfig.Instance.CurrentRegion.RegionName, home.RegionName);
+                    var revertObj2 = MainPage.RequestHttps (API.EditHome, requestJson2);
+                    IO.FileUtils.ReNameFoler (UserConfig.Instance.CurrentRegion.Name, home.Name);
                     return;
                 }
                 ChangeRegion (home, false);
@@ -563,21 +622,27 @@
         /// <param name="residenceName">Et zone name string.</param>
         bool EditResidence (RegionInfoRes home,string residenceName)
         {
-            if (home.RegionName != residenceName) {
-                home.RegionName = residenceName;
-                if (string.IsNullOrEmpty(home.RegionID)) {
-                    var requestObj21 = new AddHomeObj () { Name = residenceName };
+            if (home.Name != residenceName) {
+                home.Name = residenceName;
+                if (string.IsNullOrEmpty(home.Id)) {
+                    var requestObj21 = new AddHomeObj () {
+                        Name = residenceName ,
+                        LoginAccessToken = MainPage.LoginUser.LoginTokenString,
+                      
+                    };
                     var requestJson21 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj21);
-                    var revertObj21 = MainPage.RequestHttps ("AddHome", requestJson21);
-                    if ( revertObj21.StateCode != "SUCCESS") {
+                    var revertObj21 = MainPage.RequestHttps (API.AddHome, requestJson21);
+                    if ( revertObj21.StateCode.ToUpper()  != "SUCCESS") {
+                        ShowAddHomeErrorInfo (revertObj21.StateCode);
                         return false;
                     }
                 } else {
-                    var requestObj2 = new EditHomeObj () { Id = home.RegionID, Name = home.RegionName };
+                    var requestObj2 = new EditHomeObj () { HomeId = home.Id, Name = home.Name };
                     var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2);
-                    var revertObj2 = MainPage.RequestHttps ("EditHome", requestJson2);
-                    IO.FileUtils.ReNameFoler (UserConfig.Instance.CurrentRegion.RegionName, home.RegionName);
-                    if (revertObj2.StateCode != "SUCCESS") {
+                    var revertObj2 = MainPage.RequestHttps (API.EditHome, requestJson2);
+                    IO.FileUtils.ReNameFoler (UserConfig.Instance.CurrentRegion.Name, home.Name);
+                    if (revertObj2.StateCode.ToUpper()  != "SUCCESS") {
+                        ShowEditHomeErrorInfo (revertObj2.StateCode);
                         return false;
                     }
                 }
@@ -601,11 +666,71 @@
                 room.Save (newRoomFilePath);
                 Room.Lists.Add (room);
             }
-            if (home.RegionName != residenceName) {
+            if (home.Name != residenceName) {
                 ShowHomeList ();
             }
             return true;
         
         }
+
+
+        void ShowAddHomeErrorInfo (string stateCodeStr) {
+            string mes = "";
+            if (stateCodeStr == "NoLogin") {
+                mes = ErrorCode.NoLogin;
+            } else if (stateCodeStr == "Exist") {
+                mes = ErrorCode.NameExist;
+            } else if (stateCodeStr == ErrorCode.NetworkError) {
+                mes = ErrorCode.NetworkError;
+            } else {
+                //RequestServerFailed
+                //mes = ErrorCode.AddFailed;
+                mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr;
+
+            }
+            if (!string.IsNullOrEmpty (mes)) {
+                Application.RunOnMainThread (() => {
+                    new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+                });
+            }
+        }
+
+
+        /// <summary>
+        /// 鍝嶅簲鐘舵�佺爜:
+        //(1)Success 鍒� [璋冪敤姝ゆ帴鍙f搷浣滄垚鍔焆, ResponseData鍒欎负null
+        //(2)ParameterOrEmpty,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭�, ResponseData鍒欎负null
+        //(3)NoLogin,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭负 [鏃犳晥鐧诲綍Token!]
+        //(5)NoRecord,,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭负 [鏈埌鐩稿叧璁板綍, 璇风‘璁ゆ偍鎻愪氦鍙傛暟鏄惁姝g‘]
+        //(6)Exist,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭负 [褰撳墠鎻愪氦鐨勭殑浣忓畢:XXXX锛屽悕绉板凡瀛樺湪!]
+        //(7)NoPermission,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭负 [鎮ㄥ苟涓嶅叿鏈夋鍒嗕韩鑰呮浣忓畢鐨勬潈闄�!]
+        //(8)InsufficientAuthority,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭负 [鎮ㄥ苟涓嶅叿鏈夋鍒嗕韩鑰呮浣忓畢鐨勫畬鍏ㄦ帶鍒舵潈闄�!]
+        //(9)HomeIdAndTokenNoConsistent,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭负 [鎮ㄥ綋鍓峊oken涓庝綘褰撳墠鎺у埗鐨凥omeId涓嶄竴鑷�!]
+        //(10)NoPermission,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭负 [XXX]
+        /// </summary>
+        /// <param name="stateCodeStr"></param>
+        void ShowEditHomeErrorInfo (string stateCodeStr)
+        {
+            string mes = "";
+            if (stateCodeStr == "NoLogin") {
+                mes = ErrorCode.NoLogin;
+            } else if (stateCodeStr == "Exist") {
+                mes = ErrorCode.NameExist;
+            } else if (stateCodeStr == "HomeIdAndTokenNoConsistent") {
+                mes = ErrorCode.HomeIdAndTokenNoConsistent;
+            } else if (stateCodeStr == ErrorCode.NetworkError) {
+                mes = ErrorCode.NetworkError;
+            } else {
+                //RequestServerFailed
+                //mes = ErrorCode.AddFailed;
+                mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr;
+
+            }
+            if (!string.IsNullOrEmpty (mes)) {
+                Application.RunOnMainThread (() => {
+                    new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+                });
+            }
+        }
     }
 }

--
Gitblit v1.8.0