private async Task <bool> AuthenticateUserAsync()
        {
            if (string.IsNullOrEmpty(GlobalData.Instance.AggregatedConfig.GetInterfaceItem().BmsAddress))
            {
                DialogContent = Messages.WarningUserCenterIpNotConfigured;

                return(false);
            }
            Log.Logger.Debug("【**********************************************************************************】");

            Log.Logger.Debug($"【login step1】:get imei token begins");
            ResponseResult getImeiToekenResult =
                await
                _bmsService.GetImeiToken(GlobalData.Instance.SerialNo,
                                         GlobalData.Instance.AggregatedConfig.DeviceKey);

            Log.Logger.Debug($"【login step1】:get imei token ends");

            if (getImeiToekenResult.Status != "0")
            {
                DialogContent = getImeiToekenResult.Message;
                return(false);
            }

            Log.Logger.Debug($"【login step2】:get userinfo begins");
            ResponseResult getUserInfoResult = await _bmsService.GetUserInfo();

            Log.Logger.Debug($"【login step2】:get userinfo ends");

            if (getUserInfoResult.Status != "0")
            {
                DialogContent = getUserInfoResult.Message;
                return(false);
            }

            UserInfo userInfo = getUserInfoResult.Data as UserInfo;

            if (userInfo != null)
            {
                UserInfo globalUserInfo = IoC.Get <UserInfo>();
                globalUserInfo.CloneUserInfo(userInfo);


                return(true);
            }

            if (userInfo.GetNube() == null)
            {
                DialogContent = "未开通视讯号!";
                return(false);
            }

            Log.Logger.Error($"【get user info via device no. failed】:user info is null");
            DialogContent = Messages.ErrorLoginFailed;
            return(false);
        }
        private async Task <bool> AuthenticateUserAsync()
        {
            if (string.IsNullOrEmpty(GlobalData.Instance.AggregatedConfig.UserCenterAddress))
            {
                DialogContent = Messages.WarningUserCenterIpNotConfigured;

                return(false);
            }
            Log.Logger.Debug("【**********************************************************************************】");

            Log.Logger.Debug($"【login step1】:get imei token begins");
            ResponseResult getImeiToekenResult =
                await
                _bmsService.GetImeiToken(GlobalData.Instance.SerialNo,
                                         GlobalData.Instance.AggregatedConfig.DeviceKey);

            Log.Logger.Debug($"【login step1】:get imei token ends");

            if (getImeiToekenResult.Status != "0")
            {
                DialogContent = getImeiToekenResult.Message;
                return(false);
            }

            Log.Logger.Debug($"【login step2】:get userinfo begins");
            ResponseResult getUserInfoResult = await _bmsService.GetUserInfo();

            Log.Logger.Debug($"【login step2】:get userinfo ends");

            if (getUserInfoResult.Status != "0")
            {
                DialogContent = getUserInfoResult.Message;
                return(false);
            }

            UserInfo userInfo = getUserInfoResult.Data as UserInfo;

            if (userInfo != null)
            {
                UserInfo globalUserInfo = DependencyResolver.Current.Container.Resolve <UserInfo>();
                globalUserInfo.CloneUserInfo(userInfo);

                ISdk sdkService = DependencyResolver.Current.Container.Resolve <ISdk>();
                sdkService.SetSelfInfo(userInfo.GetNube(), userInfo.Name);

                return(true);
            }

            Log.Logger.Error($"【get user info via device no. failed】:user info is null");
            DialogContent = Messages.ErrorLoginFailed;
            return(false);
        }
Пример #3
0
        private async void _timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            Log.Logger.Debug("【refresh token begins】");
            IBms bmsService = IoC.Get <IBms>();

            ResponseResult refreshResult;

            if (GlobalData.Instance.Device.EnableLogin)
            {
                refreshResult =
                    await
                    bmsService.GetImeiToken(GlobalData.Instance.Device.Id,
                                            GlobalData.Instance.AggregatedConfig.DeviceKey);
            }
            else
            {
                UserInfo userInfo = IoC.Get <UserInfo>();
                refreshResult =
                    await bmsService.ApplyForToken(userInfo.UserName, userInfo.Pwd, GlobalData.Instance.Device.Id);
            }

            Log.Logger.Debug(
                $"【refresh token result】:status={refreshResult.Status}, msg={refreshResult.Message}, data={refreshResult.Data}");

            if (refreshResult.Status == "0")
            {
                IRtClientService rtClientService = IoC.Get <IRtClientService>();

                rtClientService.RefreshToken(bmsService.AccessToken);
            }
            else
            {
                //await Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                //{
                //    SscDialog refreshTokenDialog =
                //        new SscDialog($"{Messages.WarningRefreshTokenFailed}\r\n{refreshResult.Message}");
                //    refreshTokenDialog.ShowDialog();
                //}));
            }
        }