JLChen
2021-01-11 5a5a2b696866f947b6025d26c3302e8ffef46435
Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs
@@ -83,10 +83,11 @@
            etRemark.EditorEnterAction += (obj) => {
                Application.HideSoftInput ();
            };
            if (MainPage.LoginUser.AccountType == 1) {
                etRemark.Enable = false;
                etRemark.BorderWidth = 0;
            }
            //if (MainPage.LoginUser.AccountType == 1) {
            //    etRemark.Enable = false;
            //    etRemark.BorderWidth = 0;
            //}
            var BottomView = new FrameLayout () {
                Y = Application.GetRealHeight (400 - 88),
@@ -283,6 +284,8 @@
                };
                EventHandler<MouseEventArgs> eHandler = (sender, e) => {
                    //跳转之前先绑定APP
                    MainPage.Loading.Start ("Please wait...");
                    bool needHide = true;
                    new System.Threading.Thread (() => {
@@ -299,8 +302,14 @@
                    bool goNext = false;
                    System.Threading.Tasks.Task.Run (() => {
                        try {
                            //
                            goNext = CheckIfGoNext (common);
                            if (goNext) {
                                //先重置
                                goNext = false;
                                //网关版本符合要求,继续判断是否绑定网关成功,绑定成功了才能进行下一步跳转设备搜索页面
                                goNext = CheckIfBindGatewaySuccess (common);
                            }
                         
                        } catch (Exception ex) {
                            Utlis.WriteLine (ex.Message);
@@ -313,6 +322,7 @@
                                    inThisView = false;
                                    if (inView != null) {
                                        Utlis.WriteLine ("inView != null");
                                        //跳转设备搜索页面
                                        var deviceListView = new GuideSettingGateway (common);
                                        (inView.Parent as PageLayout).AddChidren (deviceListView);
                                        deviceListView.ShowPage ();
@@ -341,7 +351,49 @@
            }
        }
        /// <summary>
        /// 检测是否绑定网关成功
        /// </summary>
        /// <returns></returns>
        static bool CheckIfBindGatewaySuccess (GatewayBase gatewayBase)
        {
            try {
                if (UserConfig.Instance.CheckHomeGatewaysNotEmpty ()) {
                    //之前绑定过网关,并且和当前搜索到到网关一致,子网号设备号都要一致
                    if (UserConfig.Instance.HomeGateway.mac.ToUpper () == gatewayBase.MAC.Replace (".", "").ToUpper ()
                        && UserConfig.Instance.HomeGateway.subnetId == gatewayBase.SubnetID
                        && UserConfig.Instance.HomeGateway.deviceId == gatewayBase.DeviceID
                        ) {
                        return true;
                    }
                }
                var gatewayMAC = gatewayBase.MAC.Replace (".", "");
                //重新绑定
                var bindGatewayObj = new BindGatewayObj () {
                    homeId = UserConfig.Instance.CurrentRegion.Id,
                    subnetId = gatewayBase.SubnetID,
                    deviceId = gatewayBase.DeviceID,
                    gatewayType = GatewayType.BUSUDPGATEWAY.ToString (),
                    mac = gatewayMAC
                };
                var revertObj = HttpServerRequest.Current.BindGateway (bindGatewayObj);
                if (revertObj.Code == StateCode.SUCCESS) {
                    var homeGatewayInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<HomeGatewayInfo> (revertObj.Data.ToString ());
                    if (homeGatewayInfo != null && !string.IsNullOrEmpty (homeGatewayInfo.gatewayId)) {
                        //绑定网关成功,并且成功获取到新绑定的gatewayId
                        UserConfig.Instance.HomeGateway = homeGatewayInfo;
                        UserConfig.Instance.SaveUserConfig ();
                        return true;
                    }
                } else {
                    IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code);
                }
            } catch {
                Utlis.WriteLine ("绑定网关失败");
            }
            return false;
        }
        static bool inThisView = false;