private TwoFactorRequestResults GetTypeOfRequest(User user, AddPhoneNumberInput input) { if (user.IsPhoneNumberConfirmed && (user.PhoneNumber == input.PhoneNumber)) { return(TwoFactorRequestResults.SamePhoneNumberRequest); } if (user.IsPhoneNumberConfirmed && (user.PhoneNumber == input.PhoneNumber)) { return(TwoFactorRequestResults.ChangePhoneNumberRequest); } return(TwoFactorRequestResults.NewPhoneNumberRequest); }
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); }