gxc
2020-02-28 66a9965c44ecc32a6696abca876ab9d1cd091584
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,36 @@
            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 = this.GetLatitudeAndLongitudeText(Common.Config.Instance.Home.Longitude, Common.Config.Instance.Home.Latitude);
            //主人或者管理员才会出现这个菜单
            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);
                        });
                    }, Language.StringByID(R.MyInternationalizationString.uSelectAdrress), true, latitude, longitude, 100);
                };
            }
            if (i_CanDeleteResidence == true)
            {
@@ -160,7 +189,7 @@
                //没有设置过模式
                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", () =>
                    {
@@ -324,6 +353,18 @@
                    {
                        //移除楼层
                        Common.Config.Instance.Home.FloorDics.Remove(keys);
                        if (Common.Config.Instance.Home.CurrentFloorId == keys)
                        {
                            //如果删除的是当前楼层的话
                            Common.Config.Instance.Home.CurrentFloorId = string.Empty;
                            foreach (string floorId in Common.Config.Instance.Home.FloorDics.Keys)
                            {
                                //把第一个楼层ID给它
                                Common.Config.Instance.Home.CurrentFloorId = floorId;
                                break;
                            }
                        }
                        if (Common.Room.CurrentRoom == null)
                        {
                            Common.Room.CurrentRoom = Common.Room.Lists[0];
@@ -336,15 +377,15 @@
                                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];
                        }
                        //删除房间
                        foreach (string fileName in listDeleteFile)
                        {
                            Common.Room.CurrentRoom.Remove(fileName);
                        }
                        Common.Config.Instance.Home.Save();
                        //保存顺序
@@ -375,7 +416,7 @@
        private void CreatOrEditorFloor(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,8 +426,15 @@
            }
            //请输入楼层名称
            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) =>
            {
@@ -513,13 +561,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,13 +573,7 @@
            };
            //删除
            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) =>
            {
                //确认删除房间?
@@ -584,10 +620,10 @@
            Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
            bool result = await UserCenterLogic.GetResultStatuByRequestHttps("App/DelHome", true, Pra);
            //关闭进度条
            this.CloseProgressBar();
            if (result == false)
            {
                //关闭进度条
                this.CloseProgressBar();
                return;
            }
@@ -619,8 +655,9 @@
            Common.Config.Instance.HomeId = myHouse.Id;
            Common.Global.CreateHomeDirectory(myHouse.Id);
            Common.Config.Instance.Save();
            //刷新个人中心的内存及线程
            await UserCenterLogic.InitUserCenterMenmoryAndThread();
            await UserCenterLogic.InitUserCenterMenmoryAndThread(false);
            Common.Room.InitAllRoom();
            //删除住宅
@@ -630,6 +667,67 @@
            {
                //关闭界面
                this.CloseForm();
            });
        }
        #endregion
        #region ■ 保存住宅地图地址___________________
        /// <summary>
        /// 保存住宅地址
        /// </summary>
        /// <param name="btnLocation">显示控件</param>
        /// <param name="latitude">纬度</param>
        /// <param name="longitude">经度</param>
        private async void SaveResidenceAdrress(NormalViewControl btnLocation, double latitude, double longitude)
        {
            //开启进度条
            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);
                if (result == false)
                {
                    //关闭进度条
                    this.CloseProgressBar();
                    return;
                }
            }
            //关闭进度条
            this.CloseProgressBar();
            //保存缓存
            Common.Config.Instance.Home.Longitude = longitude;
            Common.Config.Instance.Home.Latitude = latitude;
            Common.Config.Instance.Home.Save();
            HdlThreadLogic.Current.RunMain(() =>
            {
                btnLocation.Text = this.GetLatitudeAndLongitudeText(longitude, latitude);
            });
        }
@@ -686,6 +784,50 @@
            return true;
        }
        /// <summary>
        /// 获取经纬度的翻译名字
        /// </summary>
        /// <param name="Longitude">经度</param>
        /// <param name="Latitude">纬度</param>
        /// <returns></returns>
        private string GetLatitudeAndLongitudeText(double Longitude, double Latitude)
        {
            string value1 = string.Empty;
            string value2 = string.Empty;
            if (Longitude == 0)
            {
                //默认东经
                value1 = "0°00'E";
            }
            else if (Longitude > 0)
            {
                //东经
                value1 = Math.Round(Longitude, 2).ToString().Replace(".", "°") + "'E";
            }
            else if (Longitude < 0)
            {
                //西经
                value1 = Math.Round(-Longitude, 2).ToString().Replace(".", "°") + "'W";
            }
            if (Latitude == 0)
            {
                //默认北纬
                value2 = "0°00'N";
            }
            else if (Latitude > 0)
            {
                //北纬
                value2 = Math.Round(Latitude, 2).ToString().Replace(".", "°") + "'N";
            }
            else if (Latitude < 0)
            {
                //南纬
                value2 = Math.Round(-Latitude, 2).ToString().Replace(".", "°") + "'S";
            }
            return value1 + " " + value2;
        }
        #endregion
        #region ■ 结构体_____________________________