Пример #1
0
        public async Task <InvokeResult> ValidateSMSAsync(VerfiyPhoneNumber verifyRequest, EntityHeader orgHeader, EntityHeader userHeader)
        {
            var user = await _userManager.FindByIdAsync(userHeader.Id);

            if (user == null)
            {
                _adminLogger.AddCustomEvent(Core.PlatformSupport.LogLevel.Error, "UserVerficationManager_ValidateSMSAsync", "Could not get current user.");
                return(InvokeResult.FromErrors(UserAdminErrorCodes.AuthCouldNotFindUserAccount.ToErrorMessage()));
            }

            var result = await _userManager.ChangePhoneNumberAsync(user, verifyRequest.PhoneNumber, verifyRequest.SMSCode);

            if (result.Successful)
            {
                _adminLogger.AddCustomEvent(Core.PlatformSupport.LogLevel.Verbose, "UserVerficationManager_ValidateSMSAsync", "Success_ConfirmSMS",
                                            new KeyValuePair <string, string>("phone", verifyRequest.PhoneNumber),
                                            new KeyValuePair <string, string>("code", verifyRequest.SMSCode));

                return(InvokeResult.Success);
            }
            else
            {
                _adminLogger.LogInvokeResult("UserVerficationManager_ValidateEmailAsync", result,
                                             new KeyValuePair <string, string>("phone", verifyRequest.PhoneNumber),
                                             new KeyValuePair <string, string>("sentToken", verifyRequest.SMSCode));
                return(result);
            }
        }
Пример #2
0
        public async void ConfirmSMSCode()
        {
            var result = await PerformNetworkOperation(async() =>
            {
                var vm               = new VerfiyPhoneNumber();
                vm.PhoneNumber       = PhoneNumber;
                vm.SMSCode           = SMSCode;
                var confirmSMSResult = await RestClient.PostAsync("/api/verify/sms", vm, new CancellationTokenSource());
                if (!confirmSMSResult.Successful)
                {
                    return(confirmSMSResult);
                }

                var refreshResult = await RefreshUserFromServerAsync();
                if (!refreshResult.Successful)
                {
                    return(refreshResult);
                }

                Logger.AddCustomEvent(LagoVista.Core.PlatformSupport.LogLevel.Error, "VerifyUserViewModel_ConfirmSMSCode", "SMS Confirmed", new KeyValuePair <string, string>("userid", AuthManager.User.Id));
                await Popups.ShowAsync(ClientResources.Verify_SMS_Confirmed);

                ShowPhoneConfirm = false;
                ShowEmailConfirm = true;

                return(refreshResult);
            });

            if (result.Successful)
            {
                await TransitionToNextView();
            }
        }
Пример #3
0
        public async void SendSMSConfirmation()
        {
            var result = await PerformNetworkOperation(async() =>
            {
                var vm         = new VerfiyPhoneNumber();
                vm.PhoneNumber = PhoneNumber;
                var sendMSM    = await RestClient.PostAsync("/api/verify/sendsmscode", vm, new CancellationTokenSource());
                return(sendMSM);
            });

            if (result.Successful)
            {
                await Popups.ShowAsync(ClientResources.Verify_SMSSent);
            }
        }
Пример #4
0
        public async Task <InvokeResult> SendSMSCodeAsync(VerfiyPhoneNumber sendSMSCode, EntityHeader orgHeader, EntityHeader userHeader)
        {
            if (String.IsNullOrEmpty(sendSMSCode.PhoneNumber))
            {
                _adminLogger.AddCustomEvent(Core.PlatformSupport.LogLevel.Error, "UserVerficationManager_SendSMSCodeAsync", UserAdminErrorCodes.RegMissingEmail.Message);
                return(InvokeResult.FromErrors(UserAdminErrorCodes.RegMissingPhoneNumber.ToErrorMessage()));
            }

            var user = await _userManager.FindByIdAsync(userHeader.Id);

            if (user == null)
            {
                _adminLogger.AddCustomEvent(Core.PlatformSupport.LogLevel.Error, "UserVerficationManager_SendSMSCodeAsync", "Could not get current user.");
                return(InvokeResult.FromErrors(UserAdminErrorCodes.AuthCouldNotFindUserAccount.ToErrorMessage()));
            }

            try
            {
                var code = await _userManager.GenerateChangePhoneNumberTokenAsync(user, sendSMSCode.PhoneNumber);

                var result = await _smsSender.SendAsync(sendSMSCode.PhoneNumber, UserAdminResources.SMS_Verification_Body.Replace("[CODE]", code).Replace("[APP_NAME]", _appConfig.AppName));

                _adminLogger.LogInvokeResult("UserVerficationManager_SendSMSCodeAsync", result,
                                             new KeyValuePair <string, string>("phone", sendSMSCode.PhoneNumber),
                                             new KeyValuePair <string, string>("code", code));

                return(result);
            }
            catch (Exception ex)
            {
                _adminLogger.AddException("UserVerficationManager_SendSMSCodeAsync", ex);
                return(InvokeResult.FromErrors(UserAdminErrorCodes.RegErrorSendingSMS.ToErrorMessage(), new ErrorMessage()
                {
                    Message = ex.Message
                }));
            }
        }
Пример #5
0
 public Task <InvokeResult> ValidateSMSAsync([FromBody] VerfiyPhoneNumber verifyRequest)
 {
     return(_userVerificationManager.ValidateSMSAsync(verifyRequest, OrgEntityHeader, UserEntityHeader));
 }
Пример #6
0
 public Task <InvokeResult> SendSMSCodeAsync([FromBody] VerfiyPhoneNumber sendSMSCode)
 {
     return(_userVerificationManager.SendSMSCodeAsync(sendSMSCode, OrgEntityHeader, UserEntityHeader));
 }