Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs
@@ -1009,7 +1009,7 @@
                //byte [] currentRegionIdBytes = CommonPage.MyEncodingGB2312.GetBytes (UserConfig.Instance.CurrentRegion.RegionID);
                byte [] currentRegionIdBytes = CommonPage.MyEncodingGB2312.GetBytes (UserConfig.Instance.CurrentRegion.Id.ToString ());
                byte [] sendBytes = new byte [36];
                Array.Copy (currentRegionIdBytes, 0, sendBytes, 2, 36 < currentRegionIdBytes.Length ? 36 : currentRegionIdBytes.Length);
                Array.Copy (currentRegionIdBytes, 0, sendBytes, 0, 36 < currentRegionIdBytes.Length ? 36 : currentRegionIdBytes.Length);
                //var currentRegionIdBytes = Utlis.IntToByteArray (UserConfig.Instance.CurrentRegion.RegionID);
                var bindReginIdStatus = Control.ControlBytesSendHasReturn (Command.Write_APP_Data_STORE_1D5E_CMD, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, sendBytes);
@@ -1044,28 +1044,42 @@
            var gatewayMAC = gatewayDeicve.MAC.Replace (".", "");
            var oldMac = "";
            if (UserConfig.Instance.CheckHomeGateways () && !string.IsNullOrEmpty (UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId)) {
                //修改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);
                var respone = MainPage.RequestHttps (API.UpdateMac, requestJson, urlHead);
                if (respone.StateCode.ToUpper () != "SUCCESS") {
                    Application.RunOnMainThread (() => {
                        new Alert ("", "Communication abnormality,gateway failed to bind residence!", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                        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;
                }
                GetAllBindGatewarysPagger ();
                //GetNowHomeGateway ();
                AddMacToUserConfig (gatewayMAC);
            } else {
                //走新绑定接口
                var mBindMacObj = new BindGatewayToHomeObj () {
@@ -1074,56 +1088,139 @@
                };
                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);
                var respone = MainPage.RequestHttps (API.BindGatewayToHome, requestJson, urlHead);
                if (respone.StateCode.ToUpper () != "SUCCESS" && respone.StateCode != "BindGatewaysExists") {
                    Application.RunOnMainThread (() => {
                        new Alert ("", "Communication abnormality,gateway failed to bind residence!", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                        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;
                }
                GetAllBindGatewarysPagger ();
                //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;
        //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;
                    Application.RunOnMainThread (() => {
                bodyView.RemoveAll ();
                        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 GetNowHomeGateway ()
        //{
        //    var requestObj3 = new GetSingleHomeGatewayPaggerObj ();
        //    requestObj3.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString;
        //    requestObj3.ReqDto.HomeId = UserConfig.Instance.CurrentRegion.Id;
        //    requestObj3.ReqDto.PageSetting.Page = 1;
        //    requestObj3.ReqDto.PageSetting.PageSize = 999;
        //    string urlHead = MainPage.RequestHttpsHost;
        //    if (requestObj3.IsOtherAccountCtrl) {
        //        urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
        //        requestObj3.ReqDto.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
        //    }
        //    //var requestObj3 = new GatewayByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id };
        //    var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj3);
        //    var revertObj3 = MainPage.RequestHttps (API.GetSingleHomeGatewayPagger, requestJson3, urlHead);
        //    if (revertObj3.StateCode.ToUpper () == "SUCCESS") {
        //        var infoResult = Newtonsoft.Json.JsonConvert.DeserializeObject<GetGatewayResult> (revertObj3.ResponseData.ToString ());
        //        var responseGatewayDataObj = infoResult.PageData;
        //        if (responseGatewayDataObj != null && 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 (() => {
        //                bodyView.RemoveAll ();
        //                UserMiddle.Init (true);
        //            });
        //        } else {
        //            Application.RunOnMainThread (() => {
        //                new Alert ("", "Query gateway failed, gateway failed to bind residence.Please try again.", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
        //                if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
        //                    new Alert ("22:" + revertObj3.StateCode, revertObj3.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
        //                }
        //            });
        //        }
        //    } else {
        //        Application.RunOnMainThread (() => {
        //            new Alert ("", "Query gateway failed, gateway failed to bind residence.Please try again.", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
        //            if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
        //                new Alert ("22:" + revertObj3.StateCode, revertObj3.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
        //            }
        //        });
        //    }
        //}
        /// <summary>
        ///