From 2ed75b8b337048e5d75e6d9ec8307633134f02fd Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 10 十月 2019 11:33:04 +0800
Subject: [PATCH] 个人中心添加楼层和创建房间,实装二级验证

---
 ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs |  819 +++++++++++++++++++++++++++------------------------------
 1 files changed, 391 insertions(+), 428 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
index cf487de..3570f6e 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
@@ -1,11 +1,11 @@
-锘縰sing Shared.Common;
-using System;
+锘縰sing System;
 using System.Collections.Generic;
+using System.Text;
 
 namespace Shared.Phone.UserCenter.Residence
 {
     /// <summary>
-    /// 浣忓畢绠$悊鐨勭敾闈⑩槄
+    /// 浣忓畢绠$悊鐣岄潰
     /// </summary>
     public class ResidenceManagementForm : EditorCommonForm
     {
@@ -14,11 +14,15 @@
         /// <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
 
@@ -27,465 +31,424 @@
         /// <summary>
         /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
         /// </summary>
-        public void ShowForm()
+        /// <param name="i_CanDeleteResidence">鑳藉惁鍒犻櫎褰撳墠浣忓畢</param>
+        public void ShowForm(bool i_CanDeleteResidence)
         {
-            //璁剧疆鏍囬淇℃伅
-            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.ResidenceManagement));
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Common.Config.Instance.Home.Name);
 
-            if (UserCenterResourse.UserInfo.AuthorityNo == 1)
+            //鍒ゆ柇鑳藉惁鍒犻櫎浣忓畢
+            if (i_CanDeleteResidence == true)
             {
-                //鍙充笂娣诲姞鎸夐挳
-                var btnTopIcon = new MostRightIconControl(69, 69);
-                btnTopIcon.UnSelectedImagePath = "Item/Add.png";
-                topFrameLayout.AddChidren(btnTopIcon);
-                btnTopIcon.InitControl();
-                btnTopIcon.ButtonClickEvent += (sender, e) =>
+                //鍒濆鍖栧彸涓婅鑿滃崟
+                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) =>
                 {
-                    //var info = new Common.ResponseEntity.ResidenceObj();
-                    //this.ShowEditorForm(info);
+                    //鍒涘缓妤煎眰
+                    this.CreatOrEditorFloor(string.Empty, string.Empty);
                 };
             }
 
-            //鍒濆鍖栦腑閮ㄦ帶浠�
-            //this.InitMiddleFrame();
+            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);
+
+            //鍒濆鍖栨ゼ灞傝
+            this.InitFloorRow();
         }
 
-        ///// <summary>
-        ///// 鍒濆鍖栦腑閮ㄦ帶浠�
-        ///// </summary>
-        //private void InitMiddleFrame()
-        //{
-        //    //娓呯┖bodyFrame
-        //    this.ClearBodyFrame();
+        /// <summary>
+        /// 鍒濆鍖栨ゼ灞傝
+        /// </summary>
+        private void InitFloorRow()
+        {
+            //鑾峰彇妤煎眰
+            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
+            this.listFloorSort.Clear();
+            foreach (string keys in dicFloor.Keys)
+            {
+                listFloorSort.Add(keys);
+            }
 
-        //    listView = new VerticalScrolViewLayout();
-        //    listView.Height = bodyFrameLayout.Height;
-        //    bodyFrameLayout.AddChidren(listView);
-
-        //    new System.Threading.Thread(() =>
-        //    {
-        //        //璁剧疆浣忓畢淇℃伅
-        //        this.SetResidenceInfo();
-        //    })
-        //    { IsBackground = true }.Start();
-        //}
-
-        ///// <summary>
-        ///// 璁剧疆浣忓畢淇℃伅
-        ///// </summary>
-        //private async void SetResidenceInfo()
-        //{
-        //    //寮�鍚繘搴︽潯
-        //    this.ShowProgressBar();
-
-        //    Application.RunOnMainThread(() =>
-        //    {
-        //        this.listView?.RemoveAll();
-        //    });
-        //    //鑾峰彇浣忓畢淇℃伅
-        //    var Pra = new GetResidenceInfoPra();
-        //    string resultData = await UserCenterLogic.GetResponseDataByRequestHttps("App/GetHomePager", false, 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)
-        //    {
-        //        if (info.IsOthreShare == false)
-        //        {
-        //            //鏀堕泦璇ヨ处鍙锋墍鎷ユ湁鐨勮嚜宸辩殑浣忓畢鐨勬暟鎹�
-        //            this.dicResidenceData[info.Id] = info;
-        //        }
-
-        //        Application.RunOnMainThread(() =>
-        //        {
-        //            if (this.Parent != null)
-        //            {
-        //                this.AddRowLayout(info);
-        //            }
-        //        });
-        //    }
-        //    //鍏抽棴杩涘害鏉�
-        //    this.CloseProgressBar();
-        //}
+            listView.Height = MaxListViewHeight;
+            listView.RemoveAll();
+            if (Common.Config.Instance.Home.FloorDics.Count == 0)
+            {
+                return;
+            }
+            HdlThreadLogic.Current.RunMainInThread(() =>
+            {
+                int count = listFloorSort.Count - 1;
+                for (int i = 0; i < listFloorSort.Count; i++)
+                {
+                    string keys = listFloorSort[i];
+                    this.AddFloorRow(keys, dicFloor[keys], i != count);
+                }
+                //璋冩暣鎺т欢楂樺害
+                listView.AdjustRealHeight(Application.GetRealHeight(23));
+            });
+        }
 
         #endregion
 
-        //#region 鈻� 娣诲姞浣忓畢鐨勮_______________________
+        #region 鈻� 娣诲姞妤煎眰琛宊________________________
 
-        ///// <summary>
-        ///// 娣诲姞浣忓畢鐨勮
-        ///// </summary>
-        ///// <param name="info"></param>
-        //private void AddRowLayout(Common.ResponseEntity.ResidenceObj info)
-        //{
-        //    if (info.IsOthreShare == true)
-        //    {
-        //        return;
-        //    }
-        //    var rowLayout = new RowLayout();
-        //    rowLayout.Height = ControlCommonResourse.ListViewRowHeight;
-        //    this.listView.AddChidren(rowLayout);
+        /// <summary>
+        /// 娣诲姞妤煎眰琛�
+        /// </summary>
+        /// <param name="keys"></param>
+        /// <param name="floorName"></param>
+        /// <param name="addLine"></param>
+        private void AddFloorRow(string keys, string floorName, bool addLine)
+        {
+            var frameRow = new RowLayoutControl(listView.rowSpace / 2);
+            this.listView.AddChidren(frameRow);
+            //鍥炬爣
+            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)
+            {
+                frameRow.frameTable.AddBottomLine();
+            }
+            frameRow.frameTable.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new FloorListRoomForm();
+                form.AddForm(keys);
+            };
 
-        //    //鍥炬爣
-        //    var btnIcon = new RowLeftIconView();
-        //    btnIcon.ChangedControlInPointMode();
-        //    rowLayout.AddChidren(btnIcon);
+            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.CreatOrEditorFloor(keys, floorName);
+                };
 
-        //    //浣忓畢
-        //    var txtResidence = new RowCenterView(true);
-        //    txtResidence.Text = info.Name;
-        //    rowLayout.AddChidren(txtResidence);
-        //    txtResidence.X -= ControlCommonResourse.PointXXLeft;
+                //鍒犻櫎
+                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) =>
+                {
+                    //鍒犻櫎妤煎眰
+                    this.DeleteFloor(keys);
+                };
+            }
+        }
 
-        //    //涓嶆槸鍒嗕韩杩囨潵鐨勪綇瀹�
-        //    if (info.IsOthreShare == false)
-        //    {
-        //        //缂栬緫
-        //        var btnEditor = new RowEditorButton();
-        //        rowLayout.AddRightView(btnEditor);
-        //        btnEditor.MouseUpEventHandler += (sender, e) =>
-        //        {
-        //            this.ShowEditorForm(info);
-        //        };
+        #endregion
 
-        //        //涓嶈兘鍒犻櫎褰撳墠姝e湪鎿嶄綔鐨勪綇瀹�
-        //        if (Common.Config.Instance.HomeId != info.Id)
-        //        {
-        //            //鍒犻櫎
-        //            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);
-        //    //    };
-        //    //}
-        //}
+        #region 鈻� 鍒涘缓鎴栫紪杈戞ゼ灞俖____________________
 
-        //#endregion
+        /// <summary>
+        /// 鍒涘缓鎴栬�呯紪杈戞ゼ灞�
+        /// </summary>
+        /// <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;
 
-        //#region 鈻� 鏄剧ず缂栬緫鐢婚潰_______________________
+            //鎸変笅纭鎸夐挳
+            dialogForm.ComfirmClickEvent += ((textValue) =>
+            {
+                if (this.CheckFloorName(keys, textValue) == false)
+                {
+                    //妤煎眰鍚嶇О妫�娴�
+                    return;
+                }
+                //鐢婚潰鍏抽棴
+                dialogForm.CloseDialog();
+                if (floorName != textValue)
+                {
+                    //缂栬緫鎴栬�呭垱寤烘ゼ灞傚悕绉�
+                    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="info"></param>
-        //private void ShowEditorForm(Common.ResponseEntity.ResidenceObj info)
-        //{
-        //    //鐢熸垚涓�涓脊绐楃敾闈�
-        //    var dialogForm = new DialogInputFrameControl(this, DialogFrameMode.OnlyInput);
+        /// <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;
+        }
 
-        //    if (string.IsNullOrEmpty(info.Name) == true)
-        //    {
-        //        //娣诲姞浣忓畢
-        //        dialogForm.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddResidence));
-        //    }
-        //    else
-        //    {
-        //        //缂栬緫浣忓畢
-        //        dialogForm.SetTitleText(Language.StringByID(R.MyInternationalizationString.uEditorResidence));
-        //    }
+        #endregion
 
-        //    //璇疯緭鍏ヤ綇瀹呭悕绉�
-        //    dialogForm.SetTipText(Language.StringByID(R.MyInternationalizationString.uPleaseInputResidenceName));
-        //    if (info.Name != null)
-        //    {
-        //        dialogForm.InputText = info.Name;
-        //    }
-           
-        //    //鎸変笅纭鎸夐挳
-        //    dialogForm.ComfirmClickEvent += (()=>
-        //    {
-        //        string resiName = dialogForm.InputText;
-        //        if (resiName == string.Empty)
-        //        {
-        //            //璇疯緭鍏ヤ綇瀹呭悕绉�
-        //            string msg = Language.StringByID(R.MyInternationalizationString.uPleaseInputResidenceName);
-        //            this.ShowErrorMsg(msg);
-        //            return;
-        //        }
-        //        //鐢婚潰鍏抽棴
-        //        dialogForm.CloseDialog();
+        #region 鈻� 鍒犻櫎妤煎眰___________________________
 
-        //        if (info.Name != resiName)
-        //        {
-        //            //淇濆瓨浣忓畢
-        //            this.SaveResidence(resiName, info, string.IsNullOrEmpty(info.Name) == false);
-        //        }
-        //    });
-        //}
+        /// <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
+        #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)
-        //{
-        //    //妫�娴嬭兘鍚︿繚瀛樹綇瀹�
-        //    if (this.CheckIsCanSaveResidence(info.Id, ResidenceName, isEditor) == false)
-        //    {
-        //        return;
-        //    }
-        //    //寮�鍚繘搴︽潯
-        //    this.ShowProgressBar();
+        /// <summary>
+        /// 鍒濆鍖栧彸涓婅鑿滃崟
+        /// </summary>
+        private void InitTopRightMenu()
+        {
+            var btnIcon = new MostRightIconControl(69, 69);
+            btnIcon.UnSelectedImagePath = "Item/More.png";
+            topFrameLayout.AddChidren(btnIcon);
+            btnIcon.InitControl();
+            btnIcon.ButtonClickEvent += ((sender, e) =>
+            {
+                var frame = new TopRightMenuControl(this, 1);
+                //鍒犻櫎浣忓畢
+                frame.AddRowMenu(Language.StringByID(R.MyInternationalizationString.uDeleteResidence), "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
+                {
+                    //纭鍒犻櫎浣忓畢鍙婃墍鏈夋ゼ灞傘�佹埧闂�?
+                    string msg = Language.StringByID(R.MyInternationalizationString.uDeleteResidenceMsg);
+                    this.ShowMassage(ShowMsgType.Confirm, msg, () =>
+                    {
+                        this.DeleteResidence();
+                    });
+                });
+            });
+        }
 
-        //    if (isEditor == true)
-        //    {
-        //        var Pra = new EditorResidencePra();
-        //        Pra.HomeId = info.Id;
-        //        Pra.Name = ResidenceName;
-        //        //缂栬緫浣忓畢
-        //        bool flage = await UserCenterLogic.GetResultStatuByRequestHttps("App/EditHome", false, Pra);
-        //        if (flage == false)
-        //        {
-        //            //鍏抽棴杩涘害鏉�
-        //            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", false, Pra);
-        //        if (resultData == null)
-        //        {
-        //            //鍏抽棴杩涘害鏉�
-        //            this.CloseProgressBar();
-        //            return;
-        //        }
+        /// <summary>
+        /// 鍒犻櫎浣忓畢
+        /// </summary>
+        public async void DeleteResidence()
+        {
+            //寮�鍚繘搴︽潯
+            this.ShowProgressBar();
 
-        //        var newInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<NewResidenceInfo>>(resultData);
+            var Pra = new DeleteResidencePra();
+            Pra.HomeId = Common.Config.Instance.Home.Id;
+            Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
 
-        //        House.AddHouse(newInfo[0].Id, ResidenceName, 0);
-        //        //閲嶆柊鍒锋柊鍒楄〃
-        //        this.SetResidenceInfo();
-        //    }
-        //}
+            bool result = await UserCenterLogic.GetResultStatuByRequestHttps("App/DelHome", true, Pra);
+            //鍏抽棴杩涘害鏉�
+            this.CloseProgressBar();
+            if (result == false)
+            {
+                return;
+            }
 
-        //#endregion
+            HdlThreadLogic.Current.RunThread(async () =>
+            {
+                //鍥犱负鍒犻櫎鐨勬槸褰撳墠鐨勪綇瀹�,鎵�浠ラ渶瑕佸厛鍒囨崲鍒板埆鐨勪綇瀹�
+                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++)
+                {
+                    if (Common.Config.Instance.HomeFilePathList[index] == deleteFile)
+                    {
+                        //褰撳墠浣忓畢鎵�澶勭殑浣嶇疆(浣忓畢鏁拌偗瀹氬ぇ浜�1,涓嶇劧涓嶄細鍑虹幇鍒犻櫎鎸夐挳)
+                        if (index == 0)
+                        {
+                            //鍙栦笅涓�浣�
+                            index++;
+                        }
+                        else
+                        {
+                            //鍙栧墠涓�浣�
+                            index--;
+                        }
+                        break;
+                    }
+                }
 
-        //#region 鈻� 鍒犻櫎浣忓畢___________________________
+                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();
 
-        ///// <summary>
-        ///// 鍒犻櫎浣忓畢
-        ///// </summary>
-        ///// <param name="info"></param>
-        //public async void DeleteResidence(Common.ResponseEntity.ResidenceObj info)
-        //{
-        //    //寮�鍚繘搴︽潯
-        //    this.ShowProgressBar();
+                //鍒犻櫎浣忓畢
+                Common.House.DeleteHouseByHouseId(deleteId);
 
-        //    var Pra = new DeleteResidencePra();
-        //    Pra.HomeId = info.Id;
+                Application.RunOnMainThread(() =>
+                {
+                    //鍏抽棴鐣岄潰
+                    this.CloseForm();
+                });
+            });
+        }
 
-        //    bool result = await UserCenterLogic.GetResultStatuByRequestHttps("App/DelHome", false, Pra);
-        //    if (result == false)
-        //    {
-        //        //鍏抽棴杩涘害鏉�
-        //        this.CloseProgressBar();
-        //        return;
-        //    }
-        //    House.DeleteHouseByHouseId(info.Id);
+        #endregion
 
-        //    this.SetResidenceInfo();
-        //}
+        #region 鈻� 缁撴瀯浣揰____________________________
 
-        //#endregion
+        /// <summary>
+        ///  鍒犻櫎浣忓畢鐨勫惎鍔ㄥ弬鏁�
+        /// </summary>
+        public class DeleteResidencePra : 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 = "";
+        }
 
-        //#region 鈻� 涓�鑸柟娉昣__________________________
-
-        ///// <summary>
-        ///// 妫�娴嬭兘鍚﹀垹闄や綇瀹�
-        ///// </summary>
-        ///// <param name="info"></param>
-        ///// <returns></returns>
-        //private bool CheckIsCanDeleteResidence(Common.ResponseEntity.ResidenceObj info)
-        //{
-        //    if (this.dicResidenceData.Count == 1)
-        //    {
-        //        //濡傛灉姝よ处鍙蜂笅鍙墿涓嬪敮涓�涓�涓嚜宸辩殑浣忓畢锛屽綋鍒犻櫎杩欎釜浣忓畢鏃讹紝鎻愮ず涓嶈兘鍒犻櫎
-        //        //鍥犱负鏈�灏戣鏈変竴涓綇瀹�
-        //        if (this.dicResidenceData.ContainsKey(info.Id) == true)
-        //        {
-        //            //涓嶈兘鍒犻櫎鏈�鍚庡敮涓�鐨勪綇瀹�
-        //            string msg = Language.StringByID(R.MyInternationalizationString.uDoNotDeleteLastResidence);
-        //            this.ShowErrorMsg(msg);
-        //            return false;
-        //        }
-        //    }
-        //    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)
-        //        {
-        //            //浣忓畢鍚嶅瓧宸茬粡瀛樺湪
-        //            int msgId = isEditor == true ? R.MyInternationalizationString.EditZigbeeHome_Exist : R.MyInternationalizationString.AddZigbeeHome_Exist;
-        //            string msg = Language.StringByID(msgId);
-        //            this.ShowErrorMsg(msg);
-        //            return false;
-        //        }
-        //    }
-        //    return true;
-        //}
-
-        //#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>
-        /////  鍒犻櫎浣忓畢鐨勫惎鍔ㄥ弬鏁�
-        ///// </summary>
-        //public class DeleteResidencePra : 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 = "";
-        //}
-        //#endregion
+        #endregion
     }
 }

--
Gitblit v1.8.0