JLChen
2020-01-15 454ac814944cf956ff02b84b70ba2ec68e5e5ea1
Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs
@@ -695,7 +695,7 @@
                                return;
                            }
                        }
                        BindGateways ();
                        BindGatewaysNew ();
                    }
                } catch (Exception ex) {
                    Console.WriteLine (ex.Message);
@@ -891,133 +891,64 @@
                }
            }
            BindGateways ();
            BindGatewaysNew ();
        }
        /// <summary>
        /// Gateway setting succeeded,data up.Please wait...
        /// 绑定Mac(印度版)
        /// </summary>
        void BindGateways (){
        void BindGatewaysNew ()
        {
            Application.RunOnMainThread (() => {
                MainPage.Loading.Start ("Gateway setting succeeded,data up.Please wait...");
            });
            IO.FileUtils.SaveEquipmentMessage (gatewayDeicve);
            var gatewayMAC = gatewayDeicve.MAC.Replace (".", "");
            var oldMac = "";
            //2020-01-11
            if (UserConfig.Instance.CheckHomeGatewaysNotEmpty ()) {
                //当前住宅存在Mac 修改MAC接口
                oldMac = UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId;
                if(oldMac == gatewayMAC) {//和绑定mac一致,不用修改
                    AddMacToUserConfig (gatewayMAC);
                    return;
                }
                var mUpdateMacObj = new UpdateMacObj () {
                    LoginAccessToken = MainPage.LoginUser.LoginTokenString,
                    HomeId = UserConfig.Instance.CurrentRegion.Id,
                    NewMac = gatewayMAC,
                    OldMac = oldMac
                };
                string urlHead = MainPage.RequestHttpsHost;
                if (mUpdateMacObj.IsOtherAccountCtrl) {
                    urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
                    mUpdateMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
                }
            //走新更新绑定接口
            var mBindMacObj = new BindMacObj () {
                LoginAccessToken = MainPage.LoginUser.LoginTokenString,
                HomeId = UserConfig.Instance.CurrentRegion.Id,
                MAC = gatewayMAC
                var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mUpdateMacObj);
                //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
                var respone = MainPage.RequestHttps (API.UpdateMac, requestJson, urlHead);
                if (respone.StateCode.ToUpper () != "SUCCESS") {
                    GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
                    Application.RunOnMainThread (() => {
                        new Alert ("", "Failed to update Mac address, gateway binding failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                        if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
                            new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                        }
                    });
                    return;
                }
                //GetNowHomeGateway ();
                AddMacToUserConfig (gatewayMAC);
            } else {
                //走新绑定接口
                var mBindMacObj = new BindGatewayToHomeObj () {
                    LoginAccessToken = MainPage.LoginUser.LoginTokenString,
                    HomeId = UserConfig.Instance.CurrentRegion.Id,
                };
                mBindMacObj.BindGateways.Add (gatewayMAC);
                string urlHead = MainPage.RequestHttpsHost;
                if (mBindMacObj.IsOtherAccountCtrl) {
                    urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
                    mBindMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
                }
                var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mBindMacObj);
                //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
                var respone = MainPage.RequestHttps (API.BindGatewayToHome, requestJson, urlHead);
                if (respone.StateCode.ToUpper () != "SUCCESS" && respone.StateCode != "BindGatewaysExists") {
                    GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
                    Application.RunOnMainThread (() => {
                        new Alert ("", "Failed to bind Mac address, gateway binding failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                        if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
                            new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                        }
                    });
                    return;
                }
                //GetNowHomeGateway ();
                AddMacToUserConfig (gatewayMAC);
            };
            string urlHead = MainPage.RequestHttpsHost;
            if (mBindMacObj.IsOtherAccountCtrl) {
                urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
                mBindMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
            }
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mBindMacObj);
            //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
            var respone = MainPage.RequestHttps (API.BindMac, requestJson, urlHead);
            if (respone.StateCode.ToUpper () != "SUCCESS") {
                GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
                Application.RunOnMainThread (() => {
                    new Alert ("", $"Failed to bind Mac address! {ErrorCode.Reason }{respone.StateCode}", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                    if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
                        new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                    }
                });
                return;
            }
            //GetNowHomeGateway ();
            AddMacToUserConfig (gatewayMAC);
        }
        //void GetAllBindGatewarysPagger ()
        //{
        //    var gatewayListObj = new GetAllBindGatewarysPaggerObj ();
        //    gatewayListObj.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString;
        //    var gatewayListJson = Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListObj);
        //    var gatewayListRevertObj = MainPage.RequestHttps (API.GetAllBindGatewarysPagger, gatewayListJson);
        //    if (gatewayListRevertObj.StateCode.ToUpper () == "SUCCESS") {
        //        var mGateRes = Newtonsoft.Json.JsonConvert.DeserializeObject<AllBindGatewarysPaggerRes> (gatewayListRevertObj.ResponseData.ToString ());
        //        var responseGatewayDataObj = mGateRes.PageData;
        //        if (responseGatewayDataObj.Count > 0) {
        //            UserConfig.Instance.GatewayList.Clear ();
        //            UserConfig.Instance.GatewayList.AddRange (responseGatewayDataObj);
        //            UserConfig.Instance.GatewayMAC = gatewayDeicve.MAC;
        //            UserConfig.Instance.SaveUserConfig ();
        //            MainPage.LoginUser.LastTime = DateTime.Now;
        //            Application.RunOnMainThread (() => {
        //                UserMiddle.Init (true);
        //            });
        //        } else {
        //            Application.RunOnMainThread (() => {
        //                new Alert ("", "Communication abnormality, gateway failed to bind residence.Please try again.", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
        //                if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
        //                    new Alert ("22:" + gatewayListRevertObj.StateCode, gatewayListRevertObj.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
        //                }
        //            });
        //        }
        //    } else {
        //        ShowGetAllBindGatewarysPaggerErrorInfo (gatewayListRevertObj.StateCode);
        //    }
        //}
        /// <summary>
        /// 修改切换本地住宅 网关
        /// </summary>
        void AddMacToUserConfig (string gatewayMAC)
        {
            UserConfig.Instance.GatewayMAC = gatewayMAC;
            UserConfig.Instance.SaveUserConfig ();
            MainPage.LoginUser.LastTime = DateTime.Now;
@@ -1030,6 +961,92 @@
        ///// <summary>
        ///// Gateway setting succeeded,data up.Please wait...
        ///// </summary>
        //void BindGateways ()
        //{
        //    Application.RunOnMainThread (() => {
        //        MainPage.Loading.Start ("Gateway setting succeeded,data up.Please wait...");
        //    });
        //    IO.FileUtils.SaveEquipmentMessage (gatewayDeicve);
        //    var gatewayMAC = gatewayDeicve.MAC.Replace (".", "");
        //    var oldMac = "";
        //    //2020-01-11
        //    if (UserConfig.Instance.CheckHomeGatewaysNotEmpty ()) {
        //        //当前住宅存在Mac 修改MAC接口
        //        oldMac = UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId;
        //        if (oldMac == gatewayMAC) {//和绑定mac一致,不用修改
        //            AddMacToUserConfig (gatewayMAC);
        //            return;
        //        }
        //        var mUpdateMacObj = new UpdateMacObj () {
        //            LoginAccessToken = MainPage.LoginUser.LoginTokenString,
        //            HomeId = UserConfig.Instance.CurrentRegion.Id,
        //            NewMac = gatewayMAC,
        //            OldMac = oldMac
        //        };
        //        string urlHead = MainPage.RequestHttpsHost;
        //        if (mUpdateMacObj.IsOtherAccountCtrl) {
        //            urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
        //            mUpdateMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
        //        }
        //        var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mUpdateMacObj);
        //        //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
        //        var respone = MainPage.RequestHttps (API.UpdateMac, requestJson, urlHead);
        //        if (respone.StateCode.ToUpper () != "SUCCESS") {
        //            GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
        //            Application.RunOnMainThread (() => {
        //                new Alert ("", "Failed to update Mac address, gateway binding failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
        //                if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
        //                    new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
        //                }
        //            });
        //            return;
        //        }
        //        //GetNowHomeGateway ();
        //        AddMacToUserConfig (gatewayMAC);
        //    } else {
        //        //走新绑定接口
        //        var mBindMacObj = new BindGatewayToHomeObj () {
        //            LoginAccessToken = MainPage.LoginUser.LoginTokenString,
        //            HomeId = UserConfig.Instance.CurrentRegion.Id,
        //        };
        //        mBindMacObj.BindGateways.Add (gatewayMAC);
        //        string urlHead = MainPage.RequestHttpsHost;
        //        if (mBindMacObj.IsOtherAccountCtrl) {
        //            urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
        //            mBindMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
        //        }
        //        var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mBindMacObj);
        //        //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
        //        var respone = MainPage.RequestHttps (API.BindGatewayToHome, requestJson, urlHead);
        //        if (respone.StateCode.ToUpper () != "SUCCESS" && respone.StateCode != "BindGatewaysExists") {
        //            GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
        //            Application.RunOnMainThread (() => {
        //                new Alert ("", "Failed to bind Mac address, gateway binding failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
        //                if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
        //                    new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
        //                }
        //            });
        //            return;
        //        }
        //        //GetNowHomeGateway ();
        //        AddMacToUserConfig (gatewayMAC);
        //    }
        //}
        /// <summary>
        /// 绑定失败之后,查询刷新一次当前住宅 网关列表
        /// 2020-01-11