Пример #1
0
        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);
        }
Пример #2
0
        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);
        }