From 528c105b3aea0e6e00477365f16f57c1e3d7eb1c Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期四, 24 十月 2019 15:31:28 +0800
Subject: [PATCH] 2019-10-24-3

---
 ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs |  673 ++++++++++++++++++++++++++-----------------------------
 1 files changed, 323 insertions(+), 350 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
index f4afb3d..3570f6e 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
@@ -1,24 +1,28 @@
-锘縰sing Shared.Common;
-using System;
+锘縰sing System;
 using System.Collections.Generic;
+using System.Text;
 
 namespace Shared.Phone.UserCenter.Residence
 {
     /// <summary>
-    /// 浣忓畢绠$悊鐨勭敾闈⑩槄
+    /// 浣忓畢绠$悊鐣岄潰
     /// </summary>
-    public class ResidenceManagementForm : UserCenterCommonForm
+    public class ResidenceManagementForm : EditorCommonForm
     {
         #region 鈻� 鍙橀噺澹版槑___________________________
 
         /// <summary>
         /// 鍒楄〃鎺т欢
         /// </summary>
-        private VerticalScrolViewLayout listView = null;
+        private VerticalListControl listView = null;
         /// <summary>
-        /// 浣忓畢鏁版嵁
+        /// 鍒楄〃鎺т欢鏈�澶ч珮搴�
         /// </summary>
-        private Dictionary<string, Common.ResponseEntity.ResidenceObj> dicResidenceData = null;
+        private int MaxListViewHeight = 0;
+        /// <summary>
+        /// 妤煎眰椤哄簭
+        /// </summary>
+        private List<string> listFloorSort = new List<string>();
 
         #endregion
 
@@ -26,437 +30,405 @@
 
         /// <summary>
         /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        public void ShowForm()
-        {
-            //璁剧疆鏍囬淇℃伅
-            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.ResidenceManagement));
-
-            if (UserCenterResourse.UserInfo.AuthorityNo == 1)
-            {
-                //鍙充笂娣诲姞鎸夐挳
-                var btnTopIcon = new TopLayoutMostRightView();
-                btnTopIcon.UnSelectedImagePath = "Item/Add.png";
-                btnTopIcon.SelectedImagePath = "Item/AddSelected.png";
-                topFrameLayout.AddChidren(btnTopIcon);
-                btnTopIcon.MouseUpEventHandler += (sender, e) =>
-                {
-                    var info = new Common.ResponseEntity.ResidenceObj();
-                    this.ShowEditorForm(info);
-                };
-            }
-
-            //鍒濆鍖栦腑閮ㄦ帶浠�
-            this.InitMiddleFrame();
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栦腑閮ㄦ帶浠�
-        /// </summary>
-        private void InitMiddleFrame()
+        /// </summary>
+        /// <param name="i_CanDeleteResidence">鑳藉惁鍒犻櫎褰撳墠浣忓畢</param>
+        public void ShowForm(bool i_CanDeleteResidence)
         {
-            listView = new VerticalScrolViewLayout();
-            listView.Height = bodyFrameLayout.Height;
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Common.Config.Instance.Home.Name);
+
+            //鍒ゆ柇鑳藉惁鍒犻櫎浣忓畢
+            if (i_CanDeleteResidence == true)
+            {
+                //鍒濆鍖栧彸涓婅鑿滃崟
+                this.InitTopRightMenu();
+            }
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            var frameHome = new FrameRowControl();
+            frameHome.Height = Application.GetRealHeight(173);
+            frameHome.BackgroundColor = UserCenterColor.Current.White;
+            bodyFrameLayout.AddChidren(frameHome);
+
+            var btnAdreeIcon = frameHome.AddLeftIcon(81);
+            btnAdreeIcon.UnSelectedImagePath = "Item/FixedPositionSelected.png";
+
+            //浣忓畢鍚嶇О
+            var btnHomeName = frameHome.AddLeftCaption(Common.Config.Instance.Home.Name, 700, 60);
+            btnHomeName.TextSize = 15;
+            btnHomeName.Y = Application.GetRealHeight(35);
+            frameHome.AddChidren(btnHomeName, ChidrenBindMode.BindEventOnly);
+            //褰撳墠浣忓畢
+            var btnNowView = frameHome.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uNowResidence), 700, 49);
+            btnNowView.TextSize = 12;
+            btnNowView.Y = Application.GetRealHeight(95);
+            btnNowView.TextColor = UserCenterColor.Current.TextGrayColor1;
+            frameHome.AddChidren(btnNowView, ChidrenBindMode.BindEventOnly);
+            //鍙崇澶�
+            frameHome.AddRightArrow();
+
+            var frameFloor = new FrameRowControl();
+            frameFloor.UseClickStatu = false;
+            frameFloor.Y = frameHome.Bottom + Application.GetRealHeight(23);
+            frameFloor.Height = Application.GetRealHeight(115);
+            frameFloor.BackgroundColor = UserCenterColor.Current.White;
+            bodyFrameLayout.AddChidren(frameFloor);
+
+            //妤煎眰
+            var btnFloor = frameFloor.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uFloor), 200, 60);
+            btnFloor.Y = Application.GetRealHeight(49);
+            btnFloor.TextColor = UserCenterColor.Current.TextColor2;
+            btnFloor.TextSize = 15;
+            frameFloor.AddChidren(btnFloor, ChidrenBindMode.NotBind);
+            if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
+            {
+                //娣诲姞妤煎眰
+                var btnAddFloor = frameFloor.AddMostRightEmptyIcon(69, 69);
+                frameFloor.ChangedChidrenBindMode(btnAddFloor, ChidrenBindMode.NotBind);
+                btnAddFloor.Y = Application.GetRealHeight(46);
+                btnAddFloor.UnSelectedImagePath = "Item/Add.png";
+                btnAddFloor.ButtonClickEvent += (sender, e) =>
+                {
+                    //鍒涘缓妤煎眰
+                    this.CreatOrEditorFloor(string.Empty, string.Empty);
+                };
+            }
+
+            this.MaxListViewHeight = bodyFrameLayout.Height - frameFloor.Bottom;
+            listView = new VerticalListControl(29);
+            listView.BackgroundColor = UserCenterColor.Current.White;
+            listView.Y = frameFloor.Bottom;
+            listView.Height = MaxListViewHeight;
             bodyFrameLayout.AddChidren(listView);
 
-            new System.Threading.Thread(() =>
-            {
-                //璁剧疆浣忓畢淇℃伅
-                this.SetResidenceInfo();
-            })
-            { IsBackground = true }.Start();
+            //鍒濆鍖栨ゼ灞傝
+            this.InitFloorRow();
         }
 
         /// <summary>
-        /// 璁剧疆浣忓畢淇℃伅
+        /// 鍒濆鍖栨ゼ灞傝
         /// </summary>
-        private async void SetResidenceInfo()
+        private void InitFloorRow()
         {
-            //寮�鍚繘搴︽潯
-            this.ShowProgressBar();
+            //鑾峰彇妤煎眰
+            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
+            this.listFloorSort.Clear();
+            foreach (string keys in dicFloor.Keys)
+            {
+                listFloorSort.Add(keys);
+            }
 
-            Application.RunOnMainThread(() =>
+            listView.Height = MaxListViewHeight;
+            listView.RemoveAll();
+            if (Common.Config.Instance.Home.FloorDics.Count == 0)
             {
-                this.listView.RemoveAll();
-            });
-            //鑾峰彇浣忓畢淇℃伅
-            var Pra = new GetResidenceInfoPra();
-            string resultData = await UserCenterLogic.GetResponseDataByRequestHttps("App/GetHomePager", Pra);
-            if (resultData == null)
-            {
-                //鍏抽棴杩涘害鏉�
-                this.CloseProgressBar(ShowReLoadMode.YES);
                 return;
             }
-            this.dicResidenceData = new Dictionary<string, Common.ResponseEntity.ResidenceObj>();
-
-            var pageData = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.ResidenceRes>(resultData);
-            foreach (Common.ResponseEntity.ResidenceObj info in pageData.PageData)
+            HdlThreadLogic.Current.RunMainInThread(() =>
             {
-                if (info.IsOthreShare == false)
+                int count = listFloorSort.Count - 1;
+                for (int i = 0; i < listFloorSort.Count; i++)
                 {
-                    //鏀堕泦璇ヨ处鍙锋墍鎷ユ湁鐨勮嚜宸辩殑浣忓畢鐨勬暟鎹�
-                    this.dicResidenceData[info.Id] = info;
+                    string keys = listFloorSort[i];
+                    this.AddFloorRow(keys, dicFloor[keys], i != count);
                 }
-
-                Application.RunOnMainThread(() =>
-                {
-                    this.AddRowLayout(info);
-                });
-            }
-            //鍏抽棴杩涘害鏉�
-            this.CloseProgressBar();
+                //璋冩暣鎺т欢楂樺害
+                listView.AdjustRealHeight(Application.GetRealHeight(23));
+            });
         }
 
         #endregion
 
-        #region 鈻� 娣诲姞浣忓畢鐨勮_______________________
+        #region 鈻� 娣诲姞妤煎眰琛宊________________________
 
         /// <summary>
-        /// 娣诲姞浣忓畢鐨勮
+        /// 娣诲姞妤煎眰琛�
         /// </summary>
-        /// <param name="info"></param>
-        private void AddRowLayout(Common.ResponseEntity.ResidenceObj info)
+        /// <param name="keys"></param>
+        /// <param name="floorName"></param>
+        /// <param name="addLine"></param>
+        private void AddFloorRow(string keys, string floorName, bool addLine)
         {
-            var rowLayout = new RowLayout();
-            rowLayout.Height = ControlCommonResourse.ListViewRowHeight;
-            this.listView.AddChidren(rowLayout);
-
+            var frameRow = new RowLayoutControl(listView.rowSpace / 2);
+            this.listView.AddChidren(frameRow);
             //鍥炬爣
-            var btnIcon = new RowLeftIconView();
-            btnIcon.ChangedControlInPointMode();
-            rowLayout.AddChidren(btnIcon);
-
-            //浣忓畢
-            var txtResidence = new RowCenterView(true);
-            txtResidence.Text = info.Name;
-            rowLayout.AddChidren(txtResidence);
-            txtResidence.X -= ControlCommonResourse.PointXXLeft;
-
-            //涓嶆槸鍒嗕韩杩囨潵鐨勪綇瀹�
-            if (info.IsOthreShare == false)
+            var btnIcon = frameRow.frameTable.AddLeftIcon(81);
+            btnIcon.UnSelectedImagePath = "Floor/FloorSelected.png";
+            //妤煎眰鍚嶇О
+            var btnFloor = frameRow.frameTable.AddLeftCaption(floorName, 500);
+            btnFloor.TextSize = 15;
+            //鍚戝彸绠ご
+            frameRow.frameTable.AddRightArrow();
+            if (addLine == true)
             {
-                //缂栬緫
-                var btnEditor = new RowEditorButton();
-                rowLayout.AddRightView(btnEditor);
-                btnEditor.MouseUpEventHandler += (sender, e) =>
+                frameRow.frameTable.AddBottomLine();
+            }
+            frameRow.frameTable.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new FloorListRoomForm();
+                form.AddForm(keys);
+            };
+
+            if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
+            {
+                //鏇存敼
+                var btnChanged = new NormalViewControl(Application.GetRealWidth(184), frameRow.Height, false);
+                btnChanged.BackgroundColor = 0xff4a4a4a;
+                btnChanged.TextSize = 12;
+                btnChanged.TextColor = UserCenterColor.Current.White;
+                btnChanged.TextAlignment = TextAlignment.Center;
+                btnChanged.TextID = R.MyInternationalizationString.uChanged1;
+                frameRow.AddRightView(btnChanged);
+                btnChanged.ButtonClickEvent += (sender, e) =>
                 {
-                    this.ShowEditorForm(info);
+                //鍒涘缓鎴栬�呯紪杈戞ゼ灞�
+                this.CreatOrEditorFloor(keys, floorName);
                 };
 
-                //涓嶈兘鍒犻櫎褰撳墠姝e湪鎿嶄綔鐨勪綇瀹�
-                if (Common.Config.Instance.HomeId != info.Id)
+                //鍒犻櫎
+                var btnDelete = new NormalViewControl(Application.GetRealWidth(184), frameRow.Height, false);
+                btnDelete.BackgroundColor = 0xfff75858;
+                btnDelete.TextSize = 12;
+                btnDelete.TextColor = UserCenterColor.Current.White;
+                btnDelete.TextAlignment = TextAlignment.Center;
+                btnDelete.TextID = R.MyInternationalizationString.uDelete;
+                frameRow.AddRightView(btnDelete);
+                btnDelete.ButtonClickEvent += (sender, e) =>
                 {
-                    //鍒犻櫎
-                    var btnDelete = new RowDeleteButton();
-                    rowLayout.AddRightView(btnDelete);
-                    btnDelete.MouseUpEventHandler += (sender, e) =>
-                    {
-                        //妫�娴嬭兘鍚﹀垹闄や綇瀹�
-                        if (this.CheckIsCanDeleteResidence(info) == false)
-                        {
-                            return;
-                        }
-                        //纭瑕佸垹闄ゅ悧锛�
-                        string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg);
-                        this.ShowConfirmMsg(msg, "DeleteResidence", info);
-                    };
-                }
-            }
-            //鎴愬憳鐨勭鐞嗗憳鏉冮檺,鍙兘缂栬緫锛屼笉鑳藉垹闄�
-            if (info.AccountType == 1)
-            {
-                //缂栬緫
-                var btnEditor = new RowEditorButton();
-                rowLayout.AddRightView(btnEditor);
-                btnEditor.MouseUpEventHandler += (sender, e) =>
-                {
-                    this.ShowEditorForm(info);
+                    //鍒犻櫎妤煎眰
+                    this.DeleteFloor(keys);
                 };
             }
         }
 
         #endregion
 
-        #region 鈻� 鏄剧ず缂栬緫鐢婚潰_______________________
+        #region 鈻� 鍒涘缓鎴栫紪杈戞ゼ灞俖____________________
 
         /// <summary>
-        /// 鏄剧ず缂栬緫鐢婚潰
+        /// 鍒涘缓鎴栬�呯紪杈戞ゼ灞�
         /// </summary>
-        /// <param name="info"></param>
-        private void ShowEditorForm(Common.ResponseEntity.ResidenceObj info)
+        /// <param name="keys"></param>
+        /// <param name="floorName"></param>
+        private void CreatOrEditorFloor(string keys, string floorName)
         {
             //鐢熸垚涓�涓脊绐楃敾闈�
             var dialogForm = new DialogInputFrameControl(this, DialogFrameMode.OnlyInput);
+            //鍒涘缓妤煎眰
+            dialogForm.SetTitleText(Language.StringByID(R.MyInternationalizationString.uCreatFloor));
+            if (keys != string.Empty)
+            {
+                //鏇存敼鍚嶇О
+                dialogForm.SetTitleText(Language.StringByID(R.MyInternationalizationString.uChangedName));
+            }
+            //璇疯緭鍏ユゼ灞傚悕绉�
+            dialogForm.SetTipText(Language.StringByID(R.MyInternationalizationString.uPleaseInputFloorName));
+            dialogForm.Text = floorName;
 
-            if (string.IsNullOrEmpty(info.Name) == true)
-            {
-                //娣诲姞浣忓畢
-                dialogForm.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddResidence));
-            }
-            else
-            {
-                //缂栬緫浣忓畢
-                dialogForm.SetTitleText(Language.StringByID(R.MyInternationalizationString.uEditorResidence));
-            }
-
-            //璇疯緭鍏ヤ綇瀹呭悕绉�
-            dialogForm.SetTipText(Language.StringByID(R.MyInternationalizationString.uPleaseInputResidenceName));
-            if (info.Name != null)
-            {
-                dialogForm.InputText = info.Name;
-            }
-           
             //鎸変笅纭鎸夐挳
-            dialogForm.ComfirmClickEvent += (()=>
+            dialogForm.ComfirmClickEvent += ((textValue) =>
             {
-                string resiName = dialogForm.InputText;
-                if (resiName == string.Empty)
+                if (this.CheckFloorName(keys, textValue) == false)
                 {
-                    //璇疯緭鍏ヤ綇瀹呭悕绉�
-                    string msg = Language.StringByID(R.MyInternationalizationString.uPleaseInputResidenceName);
-                    this.ShowErrorMsg(msg);
+                    //妤煎眰鍚嶇О妫�娴�
                     return;
                 }
                 //鐢婚潰鍏抽棴
                 dialogForm.CloseDialog();
-
-                if (info.Name != resiName)
+                if (floorName != textValue)
                 {
-                    //淇濆瓨浣忓畢
-                    this.SaveResidence(resiName, info, string.IsNullOrEmpty(info.Name) == false);
+                    //缂栬緫鎴栬�呭垱寤烘ゼ灞傚悕绉�
+                    if (keys == string.Empty)
+                    {
+                        keys = Guid.NewGuid().ToString();
+                    }
+                    Common.Config.Instance.Home.FloorDics[keys] = textValue;
+                    Common.Config.Instance.Home.Save();
+                    //閲嶆柊鍒濆鍖栨ゼ灞傝
+                    this.InitFloorRow();
                 }
+            });
+        }
+
+        /// <summary>
+        /// 妫�娴嬫ゼ灞傚悕绉�
+        /// </summary>
+        /// <param name="keys">涓婚敭</param>
+        /// <param name="newFloorName">鏂扮殑妤煎眰鍚嶇О</param>
+        /// <returns></returns>
+        private bool CheckFloorName(string keys, string newFloorName)
+        {
+            if (newFloorName == string.Empty)
+            {
+                //璇疯緭鍏ヤ綇瀹呭悕绉�
+                string msg = Language.StringByID(R.MyInternationalizationString.uPleaseInputFloorName);
+                this.ShowMassage(ShowMsgType.Error, msg);
+                return false;
+            }
+            foreach (string floorKeys in Common.Config.Instance.Home.FloorDics.Keys)
+            {
+                if (floorKeys != keys && newFloorName == Common.Config.Instance.Home.FloorDics[floorKeys])
+                {
+                    //妤煎眰鍚嶇О宸茬粡瀛樺湪
+                    string msg = Language.StringByID(R.MyInternationalizationString.uFloorNameIsExist);
+                    this.ShowMassage(ShowMsgType.Error, msg);
+                    return false;
+                }
+            }
+            return true;
+        }
+
+        #endregion
+
+        #region 鈻� 鍒犻櫎妤煎眰___________________________
+
+        /// <summary>
+        /// 鍒犻櫎妤煎眰
+        /// </summary>
+        /// <param name="keys"></param>
+        private void DeleteFloor(string keys)
+        {
+            //纭鍒犻櫎妤煎眰鍙婂叾鎵�鏈夋埧闂�?
+            this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uDeleteFloorMsg), () =>
+            {
+                //绉婚櫎妤煎眰
+                Common.Config.Instance.Home.FloorDics.Remove(keys);
+                if (Common.Room.CurrentRoom == null)
+                {
+                    Common.Room.CurrentRoom = Common.Room.Lists[0];
+                }
+                var listDeleteFile = new List<string>();
+                for (int i = 0; i < Common.Room.Lists.Count; i++)
+                {
+                    if (Common.Room.Lists[i].FloorId == keys)
+                    {
+                        listDeleteFile.Add(Common.Room.Lists[i].FileName);
+                    }
+                }
+                //鍒犻櫎鎴块棿
+                foreach (string fileName in listDeleteFile)
+                {
+                    Common.Room.CurrentRoom.Remove(fileName);
+                }
+                //濡傛灉褰撳墠閫夋嫨鐨勬埧闂存槸鍒犻櫎瀵硅薄鐨勮瘽
+                if (Common.Room.CurrentRoom.FloorId == keys)
+                {
+                    Common.Room.CurrentRoom = Common.Room.Lists[0];
+                }
+                Common.Config.Instance.Home.Save();
+                //閲嶆柊鍒濆鍖栨ゼ灞傝
+                listFloorSort.Remove(keys);
+                this.InitFloorRow();
             });
         }
 
         #endregion
 
-        #region 鈻� 淇濆瓨浣忓畢___________________________
+        #region 鈻� 鍙充笂瑙掕彍鍗昣________________________
 
         /// <summary>
-        /// 淇濆瓨浣忓畢
+        /// 鍒濆鍖栧彸涓婅鑿滃崟
         /// </summary>
-        /// <param name="ResidenceName"></param>
-        /// <param name="info"></param>
-        /// <param name="isEditor"></param>
-        /// <returns></returns>
-        private async void SaveResidence(string ResidenceName, Common.ResponseEntity.ResidenceObj info, bool isEditor)
+        private void InitTopRightMenu()
         {
-            //妫�娴嬭兘鍚︿繚瀛樹綇瀹�
-            if (this.CheckIsCanSaveResidence(info.Id, ResidenceName, isEditor) == false)
+            var btnIcon = new MostRightIconControl(69, 69);
+            btnIcon.UnSelectedImagePath = "Item/More.png";
+            topFrameLayout.AddChidren(btnIcon);
+            btnIcon.InitControl();
+            btnIcon.ButtonClickEvent += ((sender, e) =>
             {
-                return;
-            }
-            //寮�鍚繘搴︽潯
-            this.ShowProgressBar();
-
-            if (isEditor == true)
-            {
-                var Pra = new EditorResidencePra();
-                Pra.HomeId = info.Id;
-                Pra.Name = ResidenceName;
-                //缂栬緫浣忓畢
-                bool flage = await UserCenterLogic.GetResultStatuByRequestHttps("App/EditHome", Pra);
-                if (flage == false)
+                var frame = new TopRightMenuControl(this, 1);
+                //鍒犻櫎浣忓畢
+                frame.AddRowMenu(Language.StringByID(R.MyInternationalizationString.uDeleteResidence), "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
                 {
-                    //鍏抽棴杩涘害鏉�
-                    this.CloseProgressBar();
-                    return;
-                }
-                //鍒锋柊鍐呭瓨鐨勪綇瀹呭悕
-                House.EditorHouseByHouseId(info.Id, ResidenceName);
-                //閲嶆柊鍒锋柊鍒楄〃
-                this.SetResidenceInfo();
-            }
-            else
-            {
-                var Pra = new AddResidencePra();
-                Pra.Name = ResidenceName;
-                //娣诲姞浣忓畢
-                string resultData = await UserCenterLogic.GetResponseDataByRequestHttps("App/AddHome", Pra);
-                if (resultData == null)
-                {
-                    //鍏抽棴杩涘害鏉�
-                    this.CloseProgressBar();
-                    return;
-                }
-
-                var newInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<NewResidenceInfo>>(resultData);
-
-                House.AddHouse(newInfo[0].Id, ResidenceName, 0);
-                //閲嶆柊鍒锋柊鍒楄〃
-                this.SetResidenceInfo();
-            }
+                    //纭鍒犻櫎浣忓畢鍙婃墍鏈夋ゼ灞傘�佹埧闂�?
+                    string msg = Language.StringByID(R.MyInternationalizationString.uDeleteResidenceMsg);
+                    this.ShowMassage(ShowMsgType.Confirm, msg, () =>
+                    {
+                        this.DeleteResidence();
+                    });
+                });
+            });
         }
-
-        #endregion
-
-        #region 鈻� 鍒犻櫎浣忓畢___________________________
 
         /// <summary>
         /// 鍒犻櫎浣忓畢
         /// </summary>
-        /// <param name="info"></param>
-        public async void DeleteResidence(Common.ResponseEntity.ResidenceObj info)
+        public async void DeleteResidence()
         {
             //寮�鍚繘搴︽潯
             this.ShowProgressBar();
 
             var Pra = new DeleteResidencePra();
-            Pra.HomeId = info.Id;
+            Pra.HomeId = Common.Config.Instance.Home.Id;
+            Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
 
-            bool result = await UserCenterLogic.GetResultStatuByRequestHttps("App/DelHome", Pra);
+            bool result = await UserCenterLogic.GetResultStatuByRequestHttps("App/DelHome", true, Pra);
+            //鍏抽棴杩涘害鏉�
+            this.CloseProgressBar();
             if (result == false)
             {
-                //鍏抽棴杩涘害鏉�
-                this.CloseProgressBar();
                 return;
             }
-            House.DeleteHouseByHouseId(info.Id);
 
-            this.SetResidenceInfo();
-        }
-
-        #endregion
-
-        #region 鈻� 涓�鑸柟娉昣__________________________
-
-        /// <summary>
-        /// 妫�娴嬭兘鍚﹀垹闄や綇瀹�
-        /// </summary>
-        /// <param name="info"></param>
-        /// <returns></returns>
-        private bool CheckIsCanDeleteResidence(Common.ResponseEntity.ResidenceObj info)
-        {
-            if (this.dicResidenceData.Count == 1)
+            HdlThreadLogic.Current.RunThread(async () =>
             {
-                //濡傛灉姝よ处鍙蜂笅鍙墿涓嬪敮涓�涓�涓嚜宸辩殑浣忓畢锛屽綋鍒犻櫎杩欎釜浣忓畢鏃讹紝鎻愮ず涓嶈兘鍒犻櫎
-                //鍥犱负鏈�灏戣鏈変竴涓綇瀹�
-                if (this.dicResidenceData.ContainsKey(info.Id) == true)
+                //鍥犱负鍒犻櫎鐨勬槸褰撳墠鐨勪綇瀹�,鎵�浠ラ渶瑕佸厛鍒囨崲鍒板埆鐨勪綇瀹�
+                string deleteId = Common.Config.Instance.Home.Id;
+                string deleteFile = Common.Config.Instance.Home.FileName;
+                int index = 0;
+                for (; index < Common.Config.Instance.HomeFilePathList.Count; index++)
                 {
-                    //涓嶈兘鍒犻櫎鏈�鍚庡敮涓�鐨勪綇瀹�
-                    string msg = Language.StringByID(R.MyInternationalizationString.uDoNotDeleteLastResidence);
-                    this.ShowErrorMsg(msg);
-                    return false;
+                    if (Common.Config.Instance.HomeFilePathList[index] == deleteFile)
+                    {
+                        //褰撳墠浣忓畢鎵�澶勭殑浣嶇疆(浣忓畢鏁拌偗瀹氬ぇ浜�1,涓嶇劧涓嶄細鍑虹幇鍒犻櫎鎸夐挳)
+                        if (index == 0)
+                        {
+                            //鍙栦笅涓�浣�
+                            index++;
+                        }
+                        else
+                        {
+                            //鍙栧墠涓�浣�
+                            index--;
+                        }
+                        break;
+                    }
                 }
-            }
-            return true;
-        }
 
-        /// <summary>
-        /// 妫�娴嬭兘鍚︿繚瀛樹綇瀹�
-        /// </summary>
-        /// <param name="residenceId">浣忓畢ID</param>
-        /// <param name="residenceName">浣忓畢鍚�</param>
-        /// <param name="isEditor">isEditor</param>
-        /// <returns></returns>
-        private bool CheckIsCanSaveResidence(string residenceId, string residenceName, bool isEditor)
-        {
-            //浣忓畢鍚嶅瓧閲嶅妫�娴�
-            foreach (string strId in this.dicResidenceData.Keys)
-            {
-                if (residenceId != strId && residenceName == this.dicResidenceData[strId].Name)
+                var myHouse = Common.House.GetHouseByFilePath(Common.Config.Instance.HomeFilePathList[index]);
+                //鍒囨崲浣忓畢
+                Common.Config.Instance.HomeId = myHouse.Id;
+                Common.Global.CreateHomeDirectory(myHouse.Id);
+                Common.Config.Instance.Save();
+                //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
+                await UserCenterLogic.InitUserCenterMenmoryAndThread();
+                Common.Room.InitAllRoom();
+
+                //鍒犻櫎浣忓畢
+                Common.House.DeleteHouseByHouseId(deleteId);
+
+                Application.RunOnMainThread(() =>
                 {
-                    //浣忓畢鍚嶅瓧宸茬粡瀛樺湪
-                    int msgId = isEditor == true ? R.MyInternationalizationString.EditZigbeeHome_Exist : R.MyInternationalizationString.AddZigbeeHome_Exist;
-                    string msg = Language.StringByID(msgId);
-                    this.ShowErrorMsg(msg);
-                    return false;
-                }
-            }
-            return true;
+                    //鍏抽棴鐣岄潰
+                    this.CloseForm();
+                });
+            });
         }
 
         #endregion
 
         #region 鈻� 缁撴瀯浣揰____________________________
-
-        /// <summary>
-        /// 璁块棶浣忓畢淇℃伅鎺ュ彛鐨勫惎鍔ㄥ弬鏁�(鏌ヨ涓撶敤)
-        /// </summary>
-        public class GetResidenceInfoPra:IfacePraCommon
-        {
-            /// <summary>
-            /// RequestVersion
-            /// </summary>
-            public string RequestVersion = Common.CommonPage.RequestVersion;
-            /// <summary>
-            /// ReqDto
-            /// </summary>
-            public TokenInfo ReqDto = new TokenInfo();
-        }
-
-        /// <summary>
-        /// 璁块棶浣忓畢淇℃伅鎺ュ彛鐨勫惎鍔ㄥ弬鏁�(鏌ヨ涓撶敤)
-        /// </summary>
-        public class TokenInfo
-        {
-            /// <summary>
-            /// LoginAccessToken
-            /// </summary>
-            public string LoginAccessToken = Common.Config.Instance.Token;
-            /// <summary>
-            /// PageSetting
-            /// </summary>
-            public PageSettingInfo PageSetting = new PageSettingInfo()
-            {
-                Page = 1,
-                PageSize = 500
-            };
-        }
-
-        /// <summary>
-        ///  娣诲姞浣忓畢鐨勫惎鍔ㄥ弬鏁�
-        /// </summary>
-        public class AddResidencePra:IfacePraCommon
-        {
-            /// <summary>
-            /// RequestVersion
-            /// </summary>
-            public string RequestVersion = Common.CommonPage.RequestVersion;
-            /// <summary>
-            /// LoginAccessToken
-            /// </summary>
-            public string LoginAccessToken = Common.Config.Instance.Token;
-            /// <summary>
-            /// Name
-            /// </summary>
-            public string Name = string.Empty;
-        }
-
-        /// <summary>
-        /// 鏂颁綇瀹呯殑淇℃伅
-        /// </summary>
-        public class NewResidenceInfo
-        {
-            /// <summary>
-            /// ZigbeeHomeGuid
-            /// </summary>
-            public string Id = string.Empty;
-        }
-
-        /// <summary>
-        ///  缂栬緫浣忓畢鐨勫惎鍔ㄥ弬鏁�
-        /// </summary>
-        public class EditorResidencePra : IfacePraCommon
-        {
-            /// <summary>
-            /// RequestVersion
-            /// </summary>
-            public string RequestVersion = Common.CommonPage.RequestVersion;
-            /// <summary>
-            /// LoginAccessToken
-            /// </summary>
-            public string LoginAccessToken = Common.Config.Instance.Token;
-            /// <summary>
-            /// ZigbeeHomeId
-            /// </summary>
-            public string HomeId = "";
-            /// <summary>
-            /// Name
-            /// </summary>
-            public string Name = string.Empty;
-        }
 
         /// <summary>
         ///  鍒犻櫎浣忓畢鐨勫惎鍔ㄥ弬鏁�
@@ -476,6 +448,7 @@
             /// </summary>
             public string HomeId = "";
         }
+
         #endregion
     }
 }

--
Gitblit v1.8.0