From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 16 四月 2020 17:10:57 +0800
Subject: [PATCH] 请合并代码

---
 ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs |  260 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 193 insertions(+), 67 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
index f7e7f35..6ca7502 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
@@ -68,6 +68,7 @@
             rowHome.Height = Application.GetRealHeight(173);
             rowHome.BackgroundColor = UserCenterColor.Current.White;
             bodyFrameLayout.AddChidren(rowHome);
+            rowHome.frameTable.UseClickStatu = false;
 
             var btnAdreeIcon = rowHome.frameTable.AddLeftIcon(81);
             btnAdreeIcon.UnSelectedImagePath = "Item/FixedPositionSelected.png";
@@ -83,8 +84,39 @@
             btnNowView.Y = Application.GetRealHeight(95);
             btnNowView.TextColor = UserCenterColor.Current.TextGrayColor1;
             rowHome.frameTable.AddChidren(btnNowView, ChidrenBindMode.BindEventOnly);
-            //鍙崇澶�
-            rowHome.frameTable.AddRightArrow();
+            //涓讳汉鎴栬�呯鐞嗗憳鎵嶄細鍑虹幇杩欎釜鑿滃崟
+            if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
+            {
+                //鍙崇澶�
+                rowHome.frameTable.AddRightArrow();
+            }
+            //缁忕含搴�
+            var btnLocation = rowHome.frameTable.AddMostRightView(string.Empty, 500);
+            btnLocation.Text = Common.Config.Instance.Home.ResidenceAddressName;
+
+            //涓讳汉鎴栬�呯鐞嗗憳鎵嶄細鍑虹幇杩欎釜鑿滃崟
+            if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
+            {
+                rowHome.frameTable.UseClickStatu = true;
+                rowHome.frameTable.ButtonClickEvent += (sender, e) =>
+                {
+                    //榛樿鍊� 23.134421,113.267189
+                    double latitude = Common.Config.Instance.Home.Latitude;
+                    double longitude = Common.Config.Instance.Home.Longitude;
+                    //鍦板浘
+                    GDMapKit.Show((mLatitude, mLongitude, mRadius, name) =>
+                    {
+                        HdlThreadLogic.Current.RunThread(() =>
+                        {
+                            //淇濆瓨浣忓畢鍦板潃
+                            this.SaveResidenceAdrress(btnLocation, mLatitude, mLongitude, name);
+                        });
+                    }, 
+                    Language.StringByID(R.MyInternationalizationString.uSelectAdrress),
+                    Language.StringByID(R.MyInternationalizationString.uSave),
+                    true, latitude, longitude, 100);
+                };
+            }
 
             if (i_CanDeleteResidence == true)
             {
@@ -160,12 +192,12 @@
                 //娌℃湁璁剧疆杩囨ā寮�
                 if (AppResidenceMode == 0)
                 {
-                    var frame = new TopRightMenuControl(2);
+                    var frame = new TopRightMenuControl(2, 2);
                     //鍒涘缓妤煎眰
                     frame.AddRowMenu(Language.StringByID(R.MyInternationalizationString.uCreatFloor), "Item/CreatFloor.png", "Item/CreatFloorSelected.png", () =>
                     {
                         //鍒涘缓妤煎眰
-                        this.CreatOrEditorFloor(null, string.Empty, string.Empty);
+                        this.CreatOrEditorFloor(null, null, string.Empty, string.Empty);
                     });
                     //鍒涘缓鎴块棿
                     frame.AddRowMenu(Language.StringByID(R.MyInternationalizationString.uCreatRoom), "Item/RoomIcon.png", "Item/RoomIconSelected.png", () =>
@@ -183,7 +215,7 @@
                 else if (AppResidenceMode == 1)
                 {
                     //鍒涘缓妤煎眰
-                    this.CreatOrEditorFloor(null, string.Empty, string.Empty);
+                    this.CreatOrEditorFloor(null, null, string.Empty, string.Empty);
                 }
                 //鏃犳ゼ灞傛ā寮�
                 else if (AppResidenceMode == 2)
@@ -237,7 +269,7 @@
         private void InitFloorRow()
         {
             //鑾峰彇妤煎眰
-            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
+            var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
             this.listFloorSort.Clear();
             foreach (string keys in dicFloor.Keys)
             {
@@ -296,17 +328,12 @@
             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;
+                var btnChanged = frameRow.AddEditorControl();
                 btnChanged.TextID = R.MyInternationalizationString.uChanged1;
-                frameRow.AddRightView(btnChanged);
                 btnChanged.ButtonClickEvent += (sender, e) =>
                 {
                     //鍒涘缓鎴栬�呯紪杈戞ゼ灞�
-                    this.CreatOrEditorFloor(btnFloor, keys, floorName);
+                    this.CreatOrEditorFloor(frameRow, btnFloor, keys, floorName);
                 };
 
                 //鍒犻櫎
@@ -324,32 +351,42 @@
                     {
                         //绉婚櫎妤煎眰
                         Common.Config.Instance.Home.FloorDics.Remove(keys);
-                        if (Common.Room.CurrentRoom == null)
+                        if (Common.Config.Instance.Home.CurrentFloorId == keys)
                         {
-                            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)
+                            //濡傛灉鍒犻櫎鐨勬槸褰撳墠妤煎眰鐨勮瘽
+                            Common.Config.Instance.Home.CurrentFloorId = string.Empty;
+                            foreach (string floorId in Common.Config.Instance.Home.FloorDics.Keys)
                             {
-                                listDeleteFile.Add(Common.Room.Lists[i].FileName);
+                                //鎶婄涓�涓ゼ灞侷D缁欏畠
+                                Common.Config.Instance.Home.CurrentFloorId = floorId;
+                                break;
+                            }
+                            //鍒犻櫎褰撳墠妤煎眰鐨勮瘽,闇�瑕佸幓鍒锋柊涓婚〉宸﹁竟鐨勬埧闂村垪琛�
+                            HdlRoomLogic.Current.RefreshRoomListView();
+                        }
+                        var listDeleteId = new List<string>();
+                        var listAllRoom = HdlRoomLogic.Current.GetAllListRooms();
+                        for (int i = 0; i < listAllRoom.Count; i++)
+                        {
+                            if (listAllRoom[i].FloorId == keys)
+                            {
+                                listDeleteId.Add(listAllRoom[i].Id);
                             }
                         }
-                        //鍒犻櫎鎴块棿
-                        foreach (string fileName in listDeleteFile)
-                        {
-                            Common.Room.CurrentRoom.Remove(fileName);
-                        }
                         //濡傛灉褰撳墠閫夋嫨鐨勬埧闂存槸鍒犻櫎瀵硅薄鐨勮瘽
-                        if (Common.Room.CurrentRoom.FloorId == keys)
+                        if (HdlRoomLogic.Current.CurrentRoom.FloorId == keys)
                         {
-                            Common.Room.CurrentRoom = Common.Room.Lists[0];
+                            HdlRoomLogic.Current.CurrentRoom = HdlRoomLogic.Current.GetLoveRoom();
+                        }
+                        //鍒犻櫎鎴块棿
+                        foreach (string roomId in listDeleteId)
+                        {
+                            HdlRoomLogic.Current.RemoveRoom(roomId);
                         }
                         Common.Config.Instance.Home.Save();
                         //淇濆瓨椤哄簭
                         listFloorSort.Remove(keys);
-                        Common.Room.CurrentRoom.SaveFloorSort(listFloorSort);
+                        HdlRoomLogic.Current.SaveFloorSort(listFloorSort);
 
                         if (Common.Config.Instance.Home.FloorDics.Count == 0)
                         {
@@ -372,10 +409,10 @@
         /// <param name="btnFloor"></param>
         /// <param name="keys"></param>
         /// <param name="floorName"></param>
-        private void CreatOrEditorFloor(NormalViewControl btnFloor, string keys, string floorName)
+        private void CreatOrEditorFloor(RowLayoutControl frameRow, NormalViewControl btnFloor, string keys, string floorName)
         {
             //鐢熸垚涓�涓脊绐楃敾闈�
-            var dialogForm = new DialogInputFrameControl(this, DialogFrameMode.OnlyInput);
+            var dialogForm = new DialogInputControl();
             //鍒涘缓妤煎眰
             dialogForm.SetTitleText(Language.StringByID(R.MyInternationalizationString.uCreatFloor));
             if (keys != string.Empty)
@@ -385,11 +422,21 @@
             }
             //璇疯緭鍏ユゼ灞傚悕绉�
             dialogForm.SetTipText(Language.StringByID(R.MyInternationalizationString.uPleaseInputFloorName));
-            dialogForm.Text = floorName;
-
+            if (Common.Config.Instance.Home.FloorDics.ContainsKey(keys) == true)
+            {
+                dialogForm.Text = Common.Config.Instance.Home.FloorDics[keys];
+                floorName = Common.Config.Instance.Home.FloorDics[keys];
+            }
+            else
+            {
+                dialogForm.Text = floorName;
+            }
             //鎸変笅纭鎸夐挳
             dialogForm.ComfirmClickEvent += ((textValue) =>
             {
+                //杩樺師宸﹀彸鑿滃崟
+                frameRow?.HideMenu();
+
                 if (this.CheckFloorName(keys, textValue) == false)
                 {
                     //妤煎眰鍚嶇О妫�娴�
@@ -406,6 +453,12 @@
                     }
                     Common.Config.Instance.Home.FloorDics[keys] = textValue;
                     Common.Config.Instance.Home.Save();
+                    if (Common.Config.Instance.Home.CurrentFloorId == string.Empty)
+                    {
+                        Common.Config.Instance.Home.CurrentFloorId = keys;
+                        //鍒涘缓绗竴涓柊鐨勬ゼ灞傜殑璇�,闇�瑕佸幓鍒锋柊涓婚〉宸﹁竟鐨勬埧闂村垪琛�
+                        HdlRoomLogic.Current.RefreshRoomListView();
+                    }
                     if (btnFloor != null)
                     {
                         btnFloor.Text = textValue;
@@ -458,7 +511,7 @@
         private void InitRoomListRow()
         {
             //鑾峰彇妤煎眰鐨勬埧闂�
-            var listRoom = Common.Room.CurrentRoom.GetFloorSortRoom(string.Empty);
+            var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(string.Empty);
             this.listRoomSort.Clear();
             for (int i = 0; i < listRoom.Count; i++)
             {
@@ -513,13 +566,7 @@
             }
 
             //缂栬緫
-            var btnEditor = new NormalViewControl(Application.GetRealWidth(184), frameRow.Height, false);
-            btnEditor.BackgroundColor = 0xff4a4a4a;
-            btnEditor.TextSize = 12;
-            btnEditor.TextColor = UserCenterColor.Current.White;
-            btnEditor.TextAlignment = TextAlignment.Center;
-            btnEditor.TextID = R.MyInternationalizationString.uEditor;
-            frameRow.AddRightView(btnEditor);
+            var btnEditor = frameRow.AddEditorControl();
             btnEditor.ButtonClickEvent += (sender, e) =>
             {
                 var form = new EditorRoomInforForm();
@@ -531,29 +578,24 @@
             };
 
             //鍒犻櫎
-            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);
+            var btnDelete = frameRow.AddDeleteControl();
             btnDelete.ButtonClickEvent += (sender, e) =>
             {
                 //纭鍒犻櫎鎴块棿?
                 this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uDeleteRoomMsg), () =>
                 {
-                    if (Common.Room.CurrentRoom.Id == room.Id)
+                    if (HdlRoomLogic.Current.CurrentRoom.Id == room.Id)
                     {
                         //濡傛灉鍒犻櫎鐨勬槸褰撳墠鎴块棿鐨勮瘽
-                        Common.Room.CurrentRoom = Common.Room.Lists[0];
+                        HdlRoomLogic.Current.CurrentRoom = HdlRoomLogic.Current.GetLoveRoom();
                     }
-                    Common.Room.CurrentRoom.Remove(room.FileName);
+                    HdlRoomLogic.Current.RemoveRoom(room.Id);
                     //淇濆瓨椤哄簭
                     this.listRoomSort.Remove(room.Id);
-                    Common.Room.CurrentRoom.SaveRoomSort(string.Empty, this.listRoomSort);
+                    HdlRoomLogic.Current.SaveRoomSort(string.Empty, this.listRoomSort);
 
-                    if (Common.Room.Lists.Count <= 1)
+                    var listAllRoom = HdlRoomLogic.Current.GetAllListRooms();
+                    if (listAllRoom.Count <= 1)
                     {
                         //鏍规嵁鎸囧畾妯″紡,鍒濆鍖栨甯冩帶浠�
                         this.InitFrameTableByMode();
@@ -579,16 +621,36 @@
             //寮�鍚繘搴︽潯
             this.ShowProgressBar();
 
-            var Pra = new DeleteResidencePra();
-            Pra.HomeId = Common.Config.Instance.Home.Id;
-            Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-
-            bool result = await UserCenterLogic.GetResultStatuByRequestHttps("App/DelHome", true, Pra);
-            //鍏抽棴杩涘害鏉�
-            this.CloseProgressBar();
-            if (result == false)
+            if (Common.Config.Instance.Home.IsOthreShare == false)
             {
-                return;
+                //鍒犻櫎涓讳汉鑷繁鐨勪綇瀹�
+                var Pra = new DeleteResidencePra();
+                Pra.HomeId = Common.Config.Instance.Home.Id;
+                Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+
+                bool result = await UserCenterLogic.GetResultStatuByRequestHttps("App/DelHome", true, Pra);
+                if (result == false)
+                {
+                    //鍏抽棴杩涘害鏉�
+                    this.CloseProgressBar();
+                    return;
+                }
+            }
+            else
+            {
+                //鍒犻櫎鍒嗕韩鐨勪綇瀹�
+                var Pra2 = new
+                {
+                    HomeId = Common.Config.Instance.Home.Id,
+                    PrimaryUserId = Common.Config.Instance.Home.MainUserDistributedMark
+                };
+                bool result = await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/SubAccountDelShareHome", false, Pra2);
+                if (result == false)
+                {
+                    //鍏抽棴杩涘害鏉�
+                    this.CloseProgressBar();
+                    return;
+                }
             }
 
             //鍥犱负鍒犻櫎鐨勬槸褰撳墠鐨勪綇瀹�,鎵�浠ラ渶瑕佸厛鍒囨崲鍒板埆鐨勪綇瀹�
@@ -619,9 +681,10 @@
             Common.Config.Instance.HomeId = myHouse.Id;
             Common.Global.CreateHomeDirectory(myHouse.Id);
             Common.Config.Instance.Save();
+
             //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
-            await UserCenterLogic.InitUserCenterMenmoryAndThread();
-            Common.Room.InitAllRoom();
+            await UserCenterLogic.InitUserCenterMenmoryAndThread(false);
+            HdlRoomLogic.Current.InitAllRoom();
 
             //鍒犻櫎浣忓畢
             Common.House.DeleteHouseByHouseId(deleteId);
@@ -630,6 +693,69 @@
             {
                 //鍏抽棴鐣岄潰
                 this.CloseForm();
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 淇濆瓨浣忓畢鍦板浘鍦板潃___________________
+
+        /// <summary>
+        /// 淇濆瓨浣忓畢鍦板潃
+        /// </summary>
+        /// <param name="btnLocation">鏄剧ず鎺т欢</param>
+        /// <param name="latitude">绾害</param>
+        /// <param name="longitude">缁忓害</param>
+        /// <param name="addresName">浣嶇疆鍚嶇О</param>
+        private async void SaveResidenceAdrress(NormalViewControl btnLocation, double latitude, double longitude, string addresName)
+        {
+            //寮�鍚繘搴︽潯
+            this.ShowProgressBar();
+
+            var Pra = new EditorResidencePra();
+            Pra.HomeId = Common.Config.Instance.Home.Id;
+            Pra.Name = Common.Config.Instance.Home.Name;
+            Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+            Pra.Latitude = latitude;
+            Pra.Longitude = longitude;
+
+            //缂栬緫浣忓畢
+            bool flage = await UserCenterLogic.GetResultStatuByRequestHttps("App/EditHome", true, Pra);
+            if (flage == false)
+            {
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar();
+                return;
+            }
+            //璁剧疆鍏ㄩ儴缃戝叧鐨勪綇瀹呭湴鍧�
+            var listGateway = HdlGatewayLogic.Current.GetAllLocalGateway();
+            foreach (var gateway in listGateway)
+            {
+                ZigBee.Device.ZbGateway realWay = null;
+                if (HdlGatewayLogic.Current.GetRealGateway(ref realWay, gateway) == false)
+                {
+                    //閿欒:缃戝叧瀵硅薄涓㈠け
+                    continue;
+                }
+                var result = HdlGatewayLogic.Current.SetGatewaySite(gateway, longitude, latitude, ShowErrorMode.YES);
+                if (result == false)
+                {
+                    //鍏抽棴杩涘害鏉�
+                    this.CloseProgressBar();
+                    return;
+                }
+            }
+
+            //鍏抽棴杩涘害鏉�
+            this.CloseProgressBar();
+            //淇濆瓨缂撳瓨
+            Common.Config.Instance.Home.Longitude = longitude;
+            Common.Config.Instance.Home.Latitude = latitude;
+            Common.Config.Instance.Home.ResidenceAddressName = addresName;
+            Common.Config.Instance.Home.Save();
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                btnLocation.Text = addresName;
             });
         }
 
@@ -648,7 +774,7 @@
                 //鎷ユ湁妤煎眰
                 return 1;
             }
-            if (Common.Room.Lists.Count > 1)
+            if (HdlRoomLogic.Current.GetAllListRooms().Count > 1)
             {
                 //鏃犳ゼ灞傛ā寮�
                 return 2;
@@ -670,7 +796,7 @@
             {
                 //璇疯緭鍏ヤ綇瀹呭悕绉�
                 string msg = Language.StringByID(R.MyInternationalizationString.uPleaseInputFloorName);
-                this.ShowMassage(ShowMsgType.Error, msg);
+                this.ShowMassage(ShowMsgType.Tip, msg);
                 return false;
             }
             foreach (string floorKeys in Common.Config.Instance.Home.FloorDics.Keys)
@@ -679,7 +805,7 @@
                 {
                     //妤煎眰鍚嶇О宸茬粡瀛樺湪
                     string msg = Language.StringByID(R.MyInternationalizationString.uFloorNameIsExist);
-                    this.ShowMassage(ShowMsgType.Error, msg);
+                    this.ShowMassage(ShowMsgType.Tip, msg);
                     return false;
                 }
             }

--
Gitblit v1.8.0