From 652243206427f35a256400a149a1734085824cb9 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 02 九月 2020 17:35:03 +0800
Subject: [PATCH] 2020-09-02-4

---
 ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceListForm.cs |  134 ++++++++++++++++++++++++--------------------
 1 files changed, 72 insertions(+), 62 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceListForm.cs
index 2ac9c0a..50c2d74 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceListForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceListForm.cs
@@ -78,7 +78,7 @@
         /// <param name="div">1:鍏堣鍙栦簯绔�,鏃犳硶鑱旂綉,鍐嶈鍙栨湰鍦�  2:鍙浜戠  3:鍙鏈湴</param>
         private void SetResidenceInfo(int div)
         {
-            HdlThreadLogic.Current.RunThread(async () =>
+            HdlThreadLogic.Current.RunThread(() =>
             {
                 //铏氭嫙浣忓畢鐨勮瘽,鍙鏈湴
                 if (div == 3 || Config.Instance.Home.IsVirtually == true)
@@ -91,7 +91,7 @@
                     //寮�鍚繘搴︽潯
                     this.ShowProgressBar();
                     //璁剧疆浣忓畢淇℃伅(鏈夌綉鎯呭喌)
-                    var result = await this.SetResidenceInfoByOnline();
+                    var result = this.SetResidenceInfoByOnline();
                     if (result == true)
                     {
                         //浜戠璇诲彇鎴愬姛
@@ -120,26 +120,18 @@
         /// <summary>
         /// 璁剧疆浣忓畢淇℃伅(鏈夌綉鎯呭喌)
         /// </summary>
-        private async System.Threading.Tasks.Task<bool> SetResidenceInfoByOnline()
+        private bool SetResidenceInfoByOnline()
         {
             //鑾峰彇浣忓畢淇℃伅
             var Pra = new GetResidenceInfoPra();
-            var listNotCheck = new List<string>() { "NotSetAgain" };
-            string resultData = await UserCenterLogic.GetResponseDataByRequestHttps("App/GetHomePager", false, Pra, listNotCheck);
-            if (resultData == null)
+            string resultData = UserCenterLogic.GetResponseDataByRequestHttps("App/GetHomePager", false, Pra, new List<string> { "NotCheck" }, false);
+            if (string.IsNullOrEmpty(resultData) == true)
             {
                 return false;
             }
             var pageData = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.ResidenceRes>(resultData);
-
-            //鏆傛椂瀛樺偍鏁版嵁
-            var dicData = new Dictionary<string, Common.ResponseEntity.ResidenceObj>();
-            var listResidenceSort = new List<string>();
-            for (int i = 0; i < pageData.PageData.Count; i++)
-            {
-                dicData[pageData.PageData[i].Id] = pageData.PageData[i];
-                listResidenceSort.Add(pageData.PageData[i].Id);
-            }
+            //鎺掑簭浣忓畢
+            var listHouse = HdlResidenceLogic.Current.SortHouse(pageData.PageData);
 
             HdlThreadLogic.Current.RunMain(() =>
             {
@@ -150,18 +142,14 @@
                 listView.Height = bodyFrameLayout.Height;
 
                 this.dicResidenceData = new Dictionary<string, Common.ResponseEntity.ResidenceObj>();
-                for (int i = 0; i < listResidenceSort.Count; i++)
+                for (int i = 0; i < listHouse.Count; i++)
                 {
-                    if (dicData.ContainsKey(listResidenceSort[i]) == false)
-                    {
-                        continue;
-                    }
-                    var info = dicData[listResidenceSort[i]];
+                    var info = listHouse[i];
 
                     //鏀堕泦璇ヨ处鍙蜂綇瀹呯殑鏁版嵁
                     this.dicResidenceData[info.Id] = info;
                     //娣诲姞浣忓畢鐨勮(鏈夌綉鎯呭喌)
-                    this.AddRowLayoutByOnline(info, i != listResidenceSort.Count - 1);
+                    this.AddRowLayoutByOnline(info, i != listHouse.Count - 1);
                 }
                 //璋冩暣鍒楄〃鎺т欢鐨勯珮搴�
                 this.listView.AdjustRealHeight(Application.GetRealHeight(23));
@@ -224,7 +212,7 @@
                     }
                     this.ShowMassage(ShowMsgType.Confirm, msg, () =>
                     {
-                        HdlThreadLogic.Current.RunThread(async () =>
+                        HdlThreadLogic.Current.RunThread(() =>
                         {
                             //寮�鍚繘搴︽潯
                             this.ShowProgressBar();
@@ -232,13 +220,16 @@
                             //妫�娴嬫湰鍦版湁娌℃湁杩欎釜浣忓畢
                             this.CheckIsExsitResidence(info);
 
-                            await HdlResidenceLogic.Current.SwitchResidence(info.Id);
+                            var result = HdlResidenceLogic.Current.SwitchResidence(info.Id);
 
                             HdlThreadLogic.Current.RunMain(() =>
                             {
-                                //閲嶆柊鍒锋柊鍒楄〃
-                                this.listView.RemoveAll();
-                                this.SetResidenceInfo(2);
+                                if (result == true)
+                                {
+                                    //閲嶆柊鍒锋柊鍒楄〃
+                                    this.listView.RemoveAll();
+                                    this.SetResidenceInfo(2);
+                                }
                                 //鍏抽棴杩涘害鏉�
                                 this.CloseProgressBar();
                             });
@@ -259,6 +250,14 @@
                 //鍒嗕韩鐨�,涓嶈兘鏇存敼
                 return;
             }
+            //杩囨埛
+            var btnTransfer = rowLayout.AddDeleteControl();
+            btnTransfer.TextID = R.MyInternationalizationString.uTransfer;
+            btnTransfer.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new TransferResidenceMainForm();
+                form.AddForm();
+            };
             //鏇存敼
             var btnChanged = rowLayout.AddEditorControl();
             btnChanged.TextID = R.MyInternationalizationString.uChanged1;
@@ -354,15 +353,18 @@
                     }
                     this.ShowMassage(ShowMsgType.Confirm, msg, () =>
                     {
-                        HdlThreadLogic.Current.RunThread(async () =>
+                        HdlThreadLogic.Current.RunThread(() =>
                         {
-                            await HdlResidenceLogic.Current.SwitchResidence(i_home.Id);
+                            var result = HdlResidenceLogic.Current.SwitchResidence(i_home.Id);
 
                             HdlThreadLogic.Current.RunMain(() =>
                             {
-                                //閲嶆柊鍒锋柊鍒楄〃
-                                this.listView.RemoveAll();
-                                this.SetResidenceInfo(3);
+                                if (result == true)
+                                {
+                                    //閲嶆柊鍒锋柊鍒楄〃
+                                    this.listView.RemoveAll();
+                                    this.SetResidenceInfo(3);
+                                }
                                 //鍏抽棴杩涘害鏉�
                                 this.CloseProgressBar();
                             });
@@ -377,14 +379,14 @@
                     form.AddForm(flage);
                 }
             };
-            //鏇存敼
-            var btnChanged = rowLayout.AddEditorControl();
-            btnChanged.TextID = R.MyInternationalizationString.uChanged1;
-            btnChanged.ButtonClickEvent += (sender, e) =>
-            {
-                //鏄剧ず缂栬緫鍚嶇О鐣岄潰
-                this.ShowEditorNameForm(null, i_home, btnHome);
-            };
+            ////鏇存敼
+            //var btnChanged = rowLayout.AddEditorControl();
+            //btnChanged.TextID = R.MyInternationalizationString.uChanged1;
+            //btnChanged.ButtonClickEvent += (sender, e) =>
+            //{
+            //    //鏄剧ず缂栬緫鍚嶇О鐣岄潰
+            //    this.ShowEditorNameForm(null, i_home, btnHome);
+            //};
         }
 
         #endregion
@@ -424,7 +426,10 @@
                     if (info != null)
                     {
                         //缂栬緫浜戠鐨勪綇瀹呭悕绉�
-                        this.EditorResidenceName(textValue, info, btnHome);
+                        HdlThreadLogic.Current.RunThread(() =>
+                        {
+                            this.EditorResidenceName(textValue, info, btnHome);
+                        });
                     }
                     else
                     {
@@ -448,7 +453,7 @@
         /// <param name="ResidenceName"></param>
         /// <param name="info"></param>
         /// <returns></returns>
-        private async void EditorResidenceName(string ResidenceName, Common.ResponseEntity.ResidenceObj info, NormalViewControl btnHome)
+        private void EditorResidenceName(string ResidenceName, Common.ResponseEntity.ResidenceObj info, NormalViewControl btnHome)
         {
             //妫�娴嬭兘鍚︿繚瀛樹綇瀹�
             if (this.CheckIsCanSaveResidence(info.Id, ResidenceName, true) == false)
@@ -458,24 +463,21 @@
             //寮�鍚繘搴︽潯
             this.ShowProgressBar();
 
-            var Pra = new EditorResidencePra();
-            Pra.HomeId = info.Id;
-            Pra.Name = ResidenceName;
-            Pra.IsOtherAccountCtrl = false;
-            Pra.LoginAccessToken = Config.Instance.Token;
+            var result = HdlResidenceLogic.Current.EditorResidenceName(info.Id, ResidenceName);
 
-            //缂栬緫浣忓畢
-            bool flage = await UserCenterLogic.GetResultStatuByRequestHttps("App/EditHome", false, Pra);
             //鍏抽棴杩涘害鏉�
             this.CloseProgressBar();
 
-            if (flage == true)
+            if (result == true)
             {
-                //鍒锋柊鍐呭瓨鐨勪綇瀹呭悕
-                HdlResidenceLogic.Current.EditorHouseByHouseId(info.Id, ResidenceName);
-                //鏇存敼鏄剧ず鐨勫悕瀛�
-                btnHome.Text = ResidenceName;
-                info.Name = ResidenceName;
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鍒锋柊鍐呭瓨鐨勪綇瀹呭悕
+                    HdlResidenceLogic.Current.EditorHouseByHouseId(info.Id, ResidenceName);
+                    //鏇存敼鏄剧ず鐨勫悕瀛�
+                    btnHome.Text = ResidenceName;
+                    info.Name = ResidenceName;
+                });
             }
         }
 
@@ -508,7 +510,10 @@
                 dialogForm.CloseDialog();
 
                 //淇濆瓨浣忓畢
-                this.AddNewResidence(textValue);
+                HdlThreadLogic.Current.RunThread(() =>
+                {
+                    this.AddNewResidence(textValue);
+                });
             });
         }
 
@@ -517,7 +522,7 @@
         /// </summary>
         /// <param name="ResidenceName"></param>
         /// <returns></returns>
-        private async void AddNewResidence(string ResidenceName)
+        private void AddNewResidence(string ResidenceName)
         {
             //妫�娴嬭兘鍚︿繚瀛樹綇瀹�
             if (this.CheckIsCanSaveResidence(string.Empty, ResidenceName, false) == false)
@@ -530,8 +535,8 @@
             var Pra = new AddResidencePra();
             Pra.Name = ResidenceName;
             //娣诲姞浣忓畢
-            string resultData = await UserCenterLogic.GetResponseDataByRequestHttps("App/AddHome", false, Pra);
-            if (resultData == null)
+            string resultData = UserCenterLogic.GetResponseDataByRequestHttps("App/AddHome", false, Pra);
+            if (string.IsNullOrEmpty(resultData) == true)
             {
                 //鍏抽棴杩涘害鏉�
                 this.CloseProgressBar();
@@ -541,9 +546,14 @@
             var newInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<NewResidenceInfo>>(resultData);
 
             HdlResidenceLogic.Current.AddHouseToMemmory(newInfo[0].Id, ResidenceName);
-            //閲嶆柊鍒锋柊鍒楄〃
-            this.listView.RemoveAll();
-            this.SetResidenceInfo(2);
+
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                //閲嶆柊鍒锋柊鍒楄〃
+                this.listView.RemoveAll();
+                this.SetResidenceInfo(2);
+            });
+
         }
 
         #endregion

--
Gitblit v1.8.0