예제 #1
0
        public async Task <short> CreateVCodeAsync(UserPhoneVm userPhone, RequestType requestType, long?userId = null)
        {
            try
            {
                if (requestType == RequestType.VerificationUser)
                {
                    using (MessengerDbContext context = contextFactory.Create())
                    {
                        var targetUserPhone = await context.Phones
                                              .Include(phone => phone.User)
                                              .FirstOrDefaultAsync(phone => phone.PhoneNumber == userPhone.FullNumber)
                                              .ConfigureAwait(false);

                        short verificationCode =
                            await verificationCodesService.CreateVerificationCodeAsync(DateTime.UtcNow.ToUnixTime(), userPhone.FullNumber, targetUserPhone?.UserId ?? userId).ConfigureAwait(false);

                        return(verificationCode);
                    }
                }
                throw new UnknownVerificationTypeException();
            }
            catch (Exception ex)
            {
                throw new CreateVerificationCodeException("Could not create verification code.", ex);
            }
        }
예제 #2
0
 public static bool IsPhoneNumberValid(UserPhoneVm phoneNumber)
 {
     try
     {
         PhoneNumber phone = new PhoneNumber
         {
             CountryCode    = phoneNumber.CountryCode,
             NationalNumber = phoneNumber.SubscriberNumber
         };
         return(phone.IsPossibleNumber);
     }
     catch
     {
         return(false);
     }
 }