From 49add64d7f25448baa06ac5a9ebbeac0a3ae97e0 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 13 一月 2020 13:50:29 +0800
Subject: [PATCH] Version 2.50113 1.优化更新。 2.第一次引导或者添加住宅,默认添加2个房间。编辑住宅不处理。 3.设备名超过20字节限制。 4.修复编辑住宅名字重复不提示问题。 5.优化添加住宅逻辑。

---
 Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs |   82 +++++++++++++++++++++++++++++-----------
 1 files changed, 59 insertions(+), 23 deletions(-)

diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs
index d0b57dd..432b59b 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs
@@ -439,7 +439,8 @@
         /// </summary>
         /// <param name="home">Home.</param>
         /// <param name="gatewayMAC">Gateway mac.</param>
-        void ChangeRegion (RegionInfoRes home, bool goHomePage = true)
+        ///
+        void ChangeRegion (RegionInfoRes home, bool goHomePage = true, bool bNeedCheckAddRoom = false, bool goToGuideAddGatewayView = false)
         {
             if (home == null || string.IsNullOrEmpty (home.Id)) return;
 
@@ -475,6 +476,7 @@
                     Application.RunOnMainThread (() => {
                         ShowHomeList (false);
 
+
                         if (goHomePage) {
                             UserConfig.Instance.RefreshUserConfig ();
                             new Alert ("", Language.StringByID (R.MyInternationalizationString.SwitchRegionSuccessfully),
@@ -483,8 +485,20 @@
                             CommonPage.IsRemote = false;
                             EquipmentPublicClass.CheckLinkRemote (2);
                         }
+                        if (bNeedCheckAddRoom) {
+                            CheckIfNeedAddRoom ();
+                        }
+
+                        if (goToGuideAddGatewayView) {
+                            var addGatewayDialog = new GuideAddGateway ();
+                            UserMiddle.guidePageView.AddChidren (addGatewayDialog);
+                            addGatewayDialog.ShowPage (home);//guidePageView
+                            UserMiddle.guidePageView.PageIndex = 1;
+                        }
                     });
                     MainPage.LoginUser.SaveUserInfo ();
+                    
+
                     //}
                 } catch (Exception ex) {
                     Application.RunOnMainThread (() => {
@@ -597,24 +611,30 @@
 
                     var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2);
                     var revertObj2 = MainPage.RequestHttps (API.EditHome, requestJson2, urlHead);
+                    if (revertObj2.StateCode.ToUpper () != "SUCCESS") {
+                        ShowEditHomeErrorInfo (revertObj2.StateCode);
+                        return;
+                    }  
                     IO.FileUtils.ReNameFoler (UserConfig.Instance.CurrentRegion.Name, home.Name);
                     return;
                 }
-                ChangeRegion (home, false);
-                var addGatewayDialog = new GuideAddGateway ();
-                if (guide) {
 
-                    //ShowHomeList ();
-                    EditResidence (home, etZoneName.Text.Trim ());
-                    UserMiddle.guidePageView.AddChidren (addGatewayDialog);
-                    addGatewayDialog.ShowPage (home);//guidePageView
-                    UserMiddle.guidePageView.PageIndex = 1;
-                } else {
-                    EditResidence (home, etZoneName.Text.Trim ());
-                    //UserMiddle.SettingPageView.AddChidren (addGatewayDialog);
-                    //addGatewayDialog.ShowPage (home);
-                    //UserMiddle.SettingPageView.PageIndex = 2;
-                }
+                //ChangeRegion (home, false);
+                EditResidence (home, etZoneName.Text.Trim (), guide);
+
+               
+                //if (guide) {
+
+                //    //ShowHomeList ();
+                //    EditResidence (home, etZoneName.Text.Trim ());
+                //    var addGatewayDialog = new GuideAddGateway ();
+                //    UserMiddle.guidePageView.AddChidren (addGatewayDialog);
+                //    addGatewayDialog.ShowPage (home);//guidePageView
+                //    UserMiddle.guidePageView.PageIndex = 1;
+                //} else {
+                //    EditResidence (home, etZoneName.Text.Trim ());
+                    
+                //}
             };
 
             if(!guide)
@@ -646,7 +666,7 @@
         /// </summary>
         /// <param name="home">Home.</param>
         /// <param name="residenceName">Et zone name string.</param>
-        bool EditResidence (RegionInfoRes home,string residenceName)
+        bool EditResidence (RegionInfoRes home, string residenceName, bool goToGuideAddGatewayView = false)
         {
             if (home.Name != residenceName) {
                 home.Name = residenceName;
@@ -662,6 +682,12 @@
                         ShowAddHomeErrorInfo (revertObj21.StateCode);
                         return false;
                     }
+                    //鍒涘缓浣忓畢鎴愬姛锛屽垏鎹㈠埌璇ヤ綇瀹�
+                    var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RegionInfoRes>> (revertObj21.ResponseData.ToString ());
+                    if (responseDataObj != null && responseDataObj.Count > 0) {
+                        ChangeRegion (responseDataObj [0], false, true, goToGuideAddGatewayView);
+                      
+                    } 
                 } else {
                     var requestObj2 = new EditHomeObj () { HomeId = home.Id, Name = home.Name, LoginAccessToken = MainPage.LoginUser.LoginTokenString };
                     string urlHead = MainPage.RequestHttpsHost;
@@ -671,18 +697,31 @@
                     }
                     var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2);
                     var revertObj2 = MainPage.RequestHttps (API.EditHome, requestJson2, urlHead);
-                    IO.FileUtils.ReNameFoler (UserConfig.Instance.CurrentRegion.Name, home.Name);
                     if (revertObj2.StateCode.ToUpper()  != "SUCCESS") {
                         ShowEditHomeErrorInfo (revertObj2.StateCode);
                         return false;
                     }
+                    IO.FileUtils.ReNameFoler (UserConfig.Instance.CurrentRegion.Name, home.Name);
+                    ChangeRegion (home, false, true, goToGuideAddGatewayView);
+                    //CheckIfNeedAddRoom ();
                 }
 
-                ShowHomeList (false);
+                //ShowHomeList (false);
                 //2020-01-09 鍘绘帀鍒囨崲浣忓畢
                 //UserConfig.Instance.CurrentRegion = home;
                 //UserConfig.Instance.SaveUserConfig ();
+            }else {
+                ChangeRegion (home, false, true, goToGuideAddGatewayView);
+                //CheckIfNeedAddRoom ();
             }
+            return true;
+        
+        }
+
+        /// <summary>
+        /// 妫�娴嬫槸鍚﹂粯璁ゅ垱寤烘埧闂�
+        /// </summary>
+        void CheckIfNeedAddRoom () {
             if (Room.Lists.FindAll ((obj) => obj.Name == "Living Room" || obj.Name == "Bedroom").Count == 0) {
                 Room room = new Room ();
                 string newRoomFilePath = typeof (Room).Name + "_Living Room";
@@ -699,12 +738,9 @@
                 room.Add (newRoomFilePath);
                 room.Save (newRoomFilePath);
                 Room.Lists.Add (room);
+
+                Room.InitAllRoom ();
             }
-            if (home.Name != residenceName) {
-                ShowHomeList ();
-            }
-            return true;
-        
         }
 
 

--
Gitblit v1.8.0