public async Task <IActionResult> ChangePhoneNumber(ChangePhoneNumberRequest request) { var response = await mediator.Send(request); Log.Information($"User #{HttpContext.GetCurrentUserId()} changed their phone number to: {request.NewPhoneNumber}"); return(this.CreateResponse(response)); }
public async Task <ChangePhoneNumberResponse> RequestPhoneNumberChange(ChangePhoneNumberRequest request) { // Get the user var user = await userManager.FindByIdAsync(request.UserId); // Validate the sent password if (!await userManager.CheckPasswordAsync(user, request.Password)) { return(new ChangePhoneNumberResponse(false, 400, localizer["IncorrectPassword"])); } // Generate verification code var verificationCode = await userManager.GenerateChangePhoneNumberTokenAsync(user, user.PhoneNumber); // Send the verification code email await messager.SendEmailAsync(user.Email, "Phone Number Change", string.Format("You have requested to change your phone number, to complete, please input the following code: {0}", verificationCode)); return(new ChangePhoneNumberResponse(true, 200, "A verification code has been sent to your email")); }
public async Task <ChangePhoneNumberRequest> AddPhoneNumber(AddPhoneNumberInput input) { var user = await UserManager.GetUserByIdAsync(input.UserId); var result = new ChangePhoneNumberRequest(); var typeOfRequest = GetTypeOfRequest(user, input); result.ResultType = typeOfRequest; SendMessageResult sendMessageResult; switch (typeOfRequest) { case TwoFactorRequestResults.SamePhoneNumberRequest: //Is the same phone number so.... return(result); case TwoFactorRequestResults.NewPhoneNumberRequest: sendMessageResult = await SendSmsMessage(input.UserId, input.PhoneNumber, input.CountryPhoneCode); break; case TwoFactorRequestResults.ChangePhoneNumberRequest: sendMessageResult = await SendSmsMessage(input.UserId, input.PhoneNumber, input.CountryPhoneCode); break; default: throw new ArgumentOutOfRangeException(); } result.UserId = user.Id; result.CountryCode = input.CountryCode; result.PhoneNumber = input.PhoneNumber; result.CountryPhoneCode = input.CountryPhoneCode; result.SendMessageResult = sendMessageResult; return(result); }