JLChen
2020-01-15 454ac814944cf956ff02b84b70ba2ec68e5e5ea1
Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs
@@ -197,7 +197,7 @@
        /// </summary>
        /// <param name="home">Home.</param>
        /// <param name="VerticalScrolViewMiddle">Vertical scrol view middle.</param>
        void AddResidenceListRow (RegionInfoRes home, VerticalScrolViewLayout VerticalScrolViewMiddle )
        void AddResidenceListRow (RegionInfoRes home, VerticalScrolViewLayout VerticalScrolViewMiddle)
        {
            var rowView = new RowLayout () {
                Height = Application.GetRealHeight (110),
@@ -231,11 +231,28 @@
            };
            rowView.AddChidren (btnName);
            //显示分享按钮
            if (home.IsOthreShare) {
                Button FromSharingButton = new Button () {
                    X = Application.GetRealWidth (480),
                    Width = Application.GetRealWidth (30),
                    Height = Application.GetRealHeight (30),
                    Gravity = Gravity.CenterVertical,
                    UnSelectedImagePath = "CrabtreeAdd/FromSharing.png",
                    SelectedImagePath = "CrabtreeAdd/FromSharing.png",
                };
                rowView.AddChidren (FromSharingButton);
            }
            var goNextButton = new Button () {
                X = Application.GetRealWidth (500),
                Width = Application.GetRealWidth (120),
            };
            rowView.AddChidren (goNextButton);
            Button rightButton1 = new Button () {
@@ -247,8 +264,17 @@
                SelectedImagePath = "Item/RightSelected.png",
            };
            rowView.AddChidren (rightButton1);
            EventHandler<MouseEventArgs> eHandler = (sender, e) => {
                if (home.Id == UserConfig.Instance.CurrentRegion.Id) {
                    if (home.IsOthreShare) {
                        //提示没有分享住宅的权限
                        new Alert ("", ErrorCode.InsufficientAuthority, "Close").Show ();
                        return;
                    }
                    //UserConfig.Instance.GatewayMAC = gatewayMAC;
                    var addGatewayDialog = new GuideAddGateway ();
                    (Parent as PageLayout).AddChidren (addGatewayDialog);
@@ -258,11 +284,16 @@
                    ChangeRegion (home);
                }
            };
                rightButton1.MouseUpEventHandler += eHandler;
            rightButton1.MouseUpEventHandler += eHandler;
            goNextButton.MouseUpEventHandler += eHandler;
            btnName.MouseUpEventHandler += (sender,e)=> {
            btnName.MouseUpEventHandler += (sender, e) => {
                if (home.Id == UserConfig.Instance.CurrentRegion.Id) {
                    GuideAddHomeDialog (home, false,true, btnName);
                    if (home.IsOthreShare) {
                        //提示没有分享住宅的权限
                        new Alert ("", ErrorCode.InsufficientAuthority, "Close").Show ();
                        return;
                    }
                    GuideAddHomeDialog (home, false, true, btnName);
                } else {
                    ChangeRegion (home);
                }
@@ -285,6 +316,12 @@
                };
                rowView.AddRightView (btnDel);
                btnDel.MouseUpEventHandler += (sd, ee) => {
                    if (home.IsOthreShare) {
                        //提示没有分享住宅的权限
                        new Alert ("", ErrorCode.InsufficientAuthority, "Close").Show ();
                        return;
                    }
                    Dialog dialog = new Dialog ();
                    FrameLayout dialogBody = new FrameLayout () {
@@ -375,7 +412,7 @@
                                var requestObj = new LoginObj () { Account = MainPage.LoginUser.AccountString, Password = password };
                                var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
                                var revertObj = MainPage.RequestHttps (API.Login, requestJson);
                                if (revertObj.StateCode.ToUpper() == "SUCCESS") {
                                if (revertObj.StateCode.ToUpper () == "SUCCESS") {
                                    var requestObj2 = new DelHomeObj () {
                                        HomeId = home.Id,
@@ -439,7 +476,8 @@
        /// </summary>
        /// <param name="home">Home.</param>
        /// <param name="gatewayMAC">Gateway mac.</param>
        void ChangeRegion (RegionInfoRes home, bool goHomePage = true)
        ///
        void ChangeRegion (RegionInfoRes home, bool goHomePage = true, bool bNeedCheckAddRoom = false, bool goToGuideAddGatewayView = false)
        {
            if (home == null || string.IsNullOrEmpty (home.Id)) return;
@@ -474,6 +512,8 @@
                    Room.InitAllRoom ();
                    Application.RunOnMainThread (() => {
                        ShowHomeList (false);
                        if (goHomePage) {
                            UserConfig.Instance.RefreshUserConfig ();
                            new Alert ("", Language.StringByID (R.MyInternationalizationString.SwitchRegionSuccessfully),
@@ -482,8 +522,20 @@
                            CommonPage.IsRemote = false;
                            EquipmentPublicClass.CheckLinkRemote (2);
                        }
                        if (bNeedCheckAddRoom) {
                            CheckIfNeedAddRoom ();
                        }
                        if (goToGuideAddGatewayView) {
                            var addGatewayDialog = new GuideAddGateway ();
                            UserMiddle.guidePageView.AddChidren (addGatewayDialog);
                            addGatewayDialog.ShowPage (home);//guidePageView
                            UserMiddle.guidePageView.PageIndex = 1;
                        }
                    });
                    MainPage.LoginUser.SaveUserInfo ();
                    //}
                } catch (Exception ex) {
                    Application.RunOnMainThread (() => {
@@ -586,8 +638,8 @@
                    return;
                }
                if (isChangeName) {
                    home.Name = button.Text = etZoneName.Text;
                    var requestObj2 = new EditHomeObj () { HomeId = home.Id, Name = home.Name, LoginAccessToken = MainPage.LoginUser.LoginTokenString };
                    //home.Name = button.Text = etZoneName.Text;
                    var requestObj2 = new EditHomeObj () { HomeId = home.Id, Name = etZoneName.Text, LoginAccessToken = MainPage.LoginUser.LoginTokenString };
                    string urlHead = MainPage.RequestHttpsHost;
                    if (requestObj2.IsOtherAccountCtrl) {
                        urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
@@ -596,24 +648,31 @@
                    var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2);
                    var revertObj2 = MainPage.RequestHttps (API.EditHome, requestJson2, urlHead);
                    if (revertObj2.StateCode.ToUpper () != "SUCCESS") {
                        ShowEditHomeErrorInfo (revertObj2.StateCode);
                        return;
                    }
                    home.Name = button.Text = etZoneName.Text;
                    IO.FileUtils.ReNameFoler (UserConfig.Instance.CurrentRegion.Name, home.Name);
                    return;
                }
                ChangeRegion (home, false);
                var addGatewayDialog = new GuideAddGateway ();
                if (guide) {
                    //ShowHomeList ();
                    EditResidence (home, etZoneName.Text.Trim ());
                    UserMiddle.guidePageView.AddChidren (addGatewayDialog);
                    addGatewayDialog.ShowPage (home);//guidePageView
                    UserMiddle.guidePageView.PageIndex = 1;
                } else {
                    EditResidence (home, etZoneName.Text.Trim ());
                    //UserMiddle.SettingPageView.AddChidren (addGatewayDialog);
                    //addGatewayDialog.ShowPage (home);
                    //UserMiddle.SettingPageView.PageIndex = 2;
                }
                //ChangeRegion (home, false);
                EditResidence (home, etZoneName.Text.Trim (), guide);
                //if (guide) {
                //    //ShowHomeList ();
                //    EditResidence (home, etZoneName.Text.Trim ());
                //    var addGatewayDialog = new GuideAddGateway ();
                //    UserMiddle.guidePageView.AddChidren (addGatewayDialog);
                //    addGatewayDialog.ShowPage (home);//guidePageView
                //    UserMiddle.guidePageView.PageIndex = 1;
                //} else {
                //    EditResidence (home, etZoneName.Text.Trim ());
                //}
            };
            if(!guide)
@@ -645,10 +704,10 @@
        /// </summary>
        /// <param name="home">Home.</param>
        /// <param name="residenceName">Et zone name string.</param>
        bool EditResidence (RegionInfoRes home,string residenceName)
        bool EditResidence (RegionInfoRes home, string residenceName, bool goToGuideAddGatewayView = false)
        {
            if (home.Name != residenceName) {
                home.Name = residenceName;
                if (string.IsNullOrEmpty(home.Id)) {
                    var requestObj21 = new AddHomeObj () {
                        Name = residenceName ,
@@ -661,8 +720,15 @@
                        ShowAddHomeErrorInfo (revertObj21.StateCode);
                        return false;
                    }
                    home.Name = residenceName;
                    //创建住宅成功,切换到该住宅
                    var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RegionInfoRes>> (revertObj21.ResponseData.ToString ());
                    if (responseDataObj != null && responseDataObj.Count > 0) {
                        ChangeRegion (responseDataObj [0], false, true, goToGuideAddGatewayView);
                    }
                } else {
                    var requestObj2 = new EditHomeObj () { HomeId = home.Id, Name = home.Name, LoginAccessToken = MainPage.LoginUser.LoginTokenString };
                    var requestObj2 = new EditHomeObj () { HomeId = home.Id, Name = residenceName, LoginAccessToken = MainPage.LoginUser.LoginTokenString };
                    string urlHead = MainPage.RequestHttpsHost;
                    if (requestObj2.IsOtherAccountCtrl) {
                        urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
@@ -670,18 +736,32 @@
                    }
                    var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2);
                    var revertObj2 = MainPage.RequestHttps (API.EditHome, requestJson2, urlHead);
                    IO.FileUtils.ReNameFoler (UserConfig.Instance.CurrentRegion.Name, home.Name);
                    if (revertObj2.StateCode.ToUpper()  != "SUCCESS") {
                        ShowEditHomeErrorInfo (revertObj2.StateCode);
                        return false;
                    }
                    home.Name = residenceName;
                    IO.FileUtils.ReNameFoler (UserConfig.Instance.CurrentRegion.Name, home.Name);
                    ChangeRegion (home, false, true, goToGuideAddGatewayView);
                    //CheckIfNeedAddRoom ();
                }
                ShowHomeList (false);
                //ShowHomeList (false);
                //2020-01-09 去掉切换住宅
                //UserConfig.Instance.CurrentRegion = home;
                //UserConfig.Instance.SaveUserConfig ();
            }else {
                ChangeRegion (home, false, true, goToGuideAddGatewayView);
                //CheckIfNeedAddRoom ();
            }
            return true;
        }
        /// <summary>
        /// 检测是否默认创建房间
        /// </summary>
        void CheckIfNeedAddRoom () {
            if (Room.Lists.FindAll ((obj) => obj.Name == "Living Room" || obj.Name == "Bedroom").Count == 0) {
                Room room = new Room ();
                string newRoomFilePath = typeof (Room).Name + "_Living Room";
@@ -698,12 +778,9 @@
                room.Add (newRoomFilePath);
                room.Save (newRoomFilePath);
                Room.Lists.Add (room);
                Room.InitAllRoom ();
            }
            if (home.Name != residenceName) {
                ShowHomeList ();
            }
            return true;
        }