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); } }
public static bool IsPhoneNumberValid(UserPhoneVm phoneNumber) { try { PhoneNumber phone = new PhoneNumber { CountryCode = phoneNumber.CountryCode, NationalNumber = phoneNumber.SubscriberNumber }; return(phone.IsPossibleNumber); } catch { return(false); } }