Ejemplo n.º 1
0
 static PhoneNumberUtils()
 {
     PhoneNumberUtil = PhoneNumberUtil.GetInstance();
     RegionName      = System.Globalization.RegionInfo
                       .CurrentRegion
                       .TwoLetterISORegionName;
 }
        /// <summary>
        /// GetUserCodeWithExternalSystem method implementation for Azure MFA
        /// </summary>
        public int GetUserCodeWithExternalSystem(string upn, string phonenumber, string smstext, ExternalOTPProvider externalsys, CultureInfo culture)
        {
            ResourcesLocale Resources      = new ResourcesLocale(culture.LCID);
            String          NumberStr      = phonenumber;
            int             CountryCode    = 0;
            ulong           NationalNumber = 0;
            string          extension      = string.Empty;

            PhoneNumberUtil phoneUtil   = PhoneNumberUtil.GetInstance();
            PhoneNumber     NumberProto = phoneUtil.Parse(NumberStr, culture.TwoLetterISOLanguageName.ToUpper());

            CountryCode    = NumberProto.CountryCode;
            NationalNumber = NumberProto.NationalNumber;
            if (NumberProto.HasExtension)
            {
                extension = NumberProto.Extension;
            }

            PhoneFactor.Initialize(externalsys);
            PhoneFactorParams Params = new PhoneFactorParams();

            Params.Username = upn;

            Params.CountryCode     = CountryCode.ToString();
            Params.Phone           = NationalNumber.ToString();
            Params.Extension       = extension;
            Params.ApplicationName = "IdentityServer";
            Params.Sha1Salt        = externalsys.Sha1Salt;

            if (externalsys.IsTwoWay)
            {
                Params.SmsText = string.Format(Resources.GetString(ResourcesLocaleKind.Azure, "SMSTwoWayMessage"), externalsys.Company);
                Params.Mode    = PhoneFactor.MODE_SMS_TWO_WAY_OTP;
            }
            else
            {
                Params.SmsText = string.Format(Resources.GetString(ResourcesLocaleKind.Azure, "SMSMessage"), externalsys.Company);
                Params.Mode    = PhoneFactor.MODE_SMS_ONE_WAY_OTP;
            }

            int    callStatus;
            int    errorId;
            string otp = string.Empty;

            if (PhoneFactor.Authenticate(Params, out otp, out callStatus, out errorId, externalsys.Timeout))
            {
                if (externalsys.IsTwoWay)
                {
                    return((int)AuthenticationResponseKind.SmsTwoWayOTP);
                }
                else
                {
                    return(Convert.ToInt32(otp));
                }
            }
            else
            {
                return((int)AuthenticationResponseKind.Error);
            }
        }
Ejemplo n.º 3
0
        private void YapperSignupButton_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty((string)NameTextBox.Text))
            {
                MessageBox.Show(Strings.EnterValidNameText);
                return;
            }

            if (YapperSignupButton.Content != null && !string.IsNullOrEmpty((string)YapperSignupButton.Content))
            {
                try
                {
                    string          countryCode = NewUserRegistration.CountryNameToCode[(string)CountryCodeListPicker.SelectedItem];
                    PhoneNumberUtil pn          = PhoneNumberUtil.GetInstance();
                    PhoneNumber     phone       = pn.Parse((string)PhoneNumberTextBox.Text, countryCode);
                    if (pn.IsValidNumber(phone))
                    {
                        ((NewUserRegistrationViewModel)this.DataContext).PhoneNumberEntered = true;
                        PhoneNumberTextBox.Text = PhoneNumberUtil.GetInstance().Format(phone, PhoneNumberFormat.INTERNATIONAL);
                    }
                    else
                    {
                        MessageBox.Show(Strings.InvalidPhoneNumberText);
                    }
                }
                catch (Exception)
                {
                    MessageBox.Show(Strings.InvalidPhoneNumberText);
                }
            }
        }
Ejemplo n.º 4
0
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            var model = (Register)validationContext.ObjectInstance;

            if (model == null || String.IsNullOrEmpty(model.PhoneNumber))
            {
                return(new ValidationResult(ErrorMessage));
            }

            if (model == null || String.IsNullOrEmpty(model.Country))
            {
                return(new ValidationResult("Please provide a valid country"));
            }



            //phone nnumber formating addopted from
            //https://stackoverflow.com/questions/30434836/how-to-convert-mobile-number-to-international-format-in-c-sharp
            Country country = Countries.GetCountry(model.Country);
            var     util    = PhoneNumberUtil.GetInstance();

            PhoneNumbers.PhoneNumber pn = util.Parse(model.PhoneNumber, country.ShortName.ToUpper());
            if (util.IsValidNumberForRegion(pn, country.Code.ToLower()))
            {
                return(ValidationResult.Success);
            }


            return(new ValidationResult(ErrorMessage + " For the country " + model.Country));
        }
Ejemplo n.º 5
0
        string HidePhoneNumber(string phoneNumber, int hideLimit = 5)
        {
            PhoneNumberUtil numberUtil = PhoneNumberUtil.GetInstance();
            PhoneNumber     number     = numberUtil.Parse(phoneNumber, "NG");

            phoneNumber = numberUtil.Format(number, PhoneNumberFormat.INTERNATIONAL);

            string resultNumber = "";
            int    limit        = phoneNumber.Length - 1;
            int    hiddenCount  = 0;

            for (int i = limit; i >= 0; i--)
            {
                // display the last two characters in the phone number
                if (i > limit - 2)
                {
                    resultNumber = phoneNumber[i] + resultNumber;
                }
                // hide the next set of numbers till the limit is reached
                else if (char.IsNumber(phoneNumber[i]) && hiddenCount < hideLimit)
                {
                    hiddenCount++;
                    resultNumber = "*" + resultNumber;
                }
                // Add everything else
                else
                {
                    resultNumber = phoneNumber[i] + resultNumber;
                }
            }
            return(resultNumber);
        }
Ejemplo n.º 6
0
        private void VerifyPhoneForCountry()
        {
            PhoneNumberUtil phoneUtil = PhoneNumberUtil.GetInstance();

            if (_config.Country == "SE")
            {
                var t = phoneUtil.Parse(mobile_no, "SE");
                if (phoneUtil.IsValidNumberForRegion(t, "SE"))
                {
                    return;
                }
            }
            else if (_config.Country == "FI")
            {
                var t = phoneUtil.Parse(mobile_no, "FI");
                if (phoneUtil.IsValidNumberForRegion(t, "FI"))
                {
                    return;
                }
            }
            else if (_config.Country == "NO")
            {
                var t = phoneUtil.Parse(mobile_no, "NO");
                if (phoneUtil.IsValidNumberForRegion(t, "NO"))
                {
                    return;
                }
            }
            else
            {
                throw new ArgumentException("Country not supported");
            }
            throw new ArgumentException("Phone number incorrect");
        }
Ejemplo n.º 7
0
        public static string formatE164(string countryCode, string number)
        {
            if (countryCode == string.Empty || number == string.Empty)
            {
                return(string.Empty);
            }
            try
            {
                PhoneNumberUtil util = PhoneNumberUtil.GetInstance();
                int             parsedCountryCode = Convert.ToInt32(countryCode);
                PhoneNumber     parsedNumber      = util.Parse(number,
                                                               util.GetRegionCodeForCountryCode(parsedCountryCode));

                return(util.Format(parsedNumber, PhoneNumberFormat.E164));
            }
            catch (NumberParseException npe) {
                return(string.Empty);
            } catch (Exception npe)
            {
                return(string.Empty);
            }

            return("+" +
                   countryCode.ReplaceAll("[^0-9]", "").ReplaceAll("^0*", "") +
                   number.ReplaceAll("[^0-9]", ""));
        }
Ejemplo n.º 8
0
 public TestExampleNumbers()
 {
     invalidCases.Clear();
     wrongTypeCases.Clear();
     PhoneNumberUtil.ResetInstance();
     phoneNumberUtil = PhoneNumberUtil.GetInstance();
 }
Ejemplo n.º 9
0
        public static string FormatPhoneNumber(string phoneNumber)
        {
            var phoneNumberUtil = PhoneNumberUtil.GetInstance();
            var pn = phoneNumberUtil.Parse(phoneNumber, Region);

            return(phoneNumberUtil.Format(pn, PhoneNumberFormat.NATIONAL));
        }
Ejemplo n.º 10
0
        public void ConfigureContainer(IUnityContainer container)
        {
            container.AddNewExtension <UnityFallbackProviderExtension>();
            container.AddNewExtension <AutomaticBuildExtension>();
            container.AddNewExtension <DeepDependencyExtension>();
            container.AddNewExtension <DeepMethodExtension>();
            container.RegisterInstance(new LoggerFactory().AddNLog());
            container.RegisterSingleton(typeof(ILogger <>), typeof(LoggingAdapter <>));


            container.RegisterType <IUserStore <User>, MongoUserStore <User, UserRole, MongoDataContext, Guid> >();
            container.RegisterType <IRoleStore <UserRole>, MongoRoleStore <UserRole, MongoDataContext, Guid> >();

            container.RegisterFactory <IPayStackApi>(c => new PayStackApi(c.Resolve <IOptions <PaystackOptions> >().Value.SecretKey));
            container.RegisterTransient <IPaymentService, PaymentService>();
            //container.RegisterType<IUserStore<User>, MongoStores.UserStore<User, UserRole>>();
            //container.RegisterType<IRoleStore<UserRole>, MongoStores.RoleStore<UserRole>>();

            //container.RegisterTransient<UserDataContext>();

            container.RegisterFactory <MongoDataContext>(s => new MongoDataContext(ConnectionString, DatabaseName));
            container.RegisterScoped <ISieveProcessor, SieveProcessor>();

            container.RegisterControllers();

            Core.ConfigureCoreServices(container);



            container.RegisterScoped <IAuthService, AuthService>();
            container.RegisterScoped <IJwtFactory, JwtFactory>();
            container.RegisterScoped <IEmailService, GoogleMailService>();
            container.RegisterScoped <ISmsService, SmsService>();
            container.RegisterFactory <PhoneNumberUtil>(c => PhoneNumberUtil.GetInstance());
        }
        static Boolean parse([MarshalAs(UnmanagedType.BStr)] String number,
                             [MarshalAs(UnmanagedType.BStr)] String country,
                             [MarshalAs(UnmanagedType.BStr)] out String formatetNumber)
        {
            PhoneNumberUtil phoneUtil = PhoneNumberUtil.GetInstance();

            try
            {
                PhoneNumber phonenumber = phoneUtil.Parse(number, country);
                formatetNumber = phoneUtil.Format(phonenumber, PhoneNumberFormat.INTERNATIONAL);
                return(true);
            }
            catch (Exception e)
            {
                formatetNumber = e.Message;
                return(false);
            }

            // Produces "+41 44 668 18 00"
            //System.out.println(phoneUtil.format(swissNumberProto, PhoneNumberFormat.INTERNATIONAL));
            // Produces "044 668 18 00"
            //System.out.println(phoneUtil.format(swissNumberProto, PhoneNumberFormat.NATIONAL));
            // Produces "+41446681800"
            //System.out.println(phoneUtil.format(swissNumberProto, PhoneNumberFormat.E164));
        }
Ejemplo n.º 12
0
 static PhoneNumberUtil InitializePhoneUtilForTesting()
 {
     PhoneNumberUtil.ResetInstance();
     return(PhoneNumberUtil.GetInstance(
                TEST_META_DATA_FILE_PREFIX,
                CountryCodeToRegionCodeMapForTesting.GetCountryCodeToRegionCodeMap()));
 }
Ejemplo n.º 13
0
        public static string ToE164(this string number)
        {
            var util = PhoneNumberUtil.GetInstance();
            var pn   = util.Parse(number, "US");

            return(util.Format(pn, PhoneNumberFormat.E164));
        }
        public static string FormatInternational(string phoneNumber, string regionCode)
        {
            if (string.IsNullOrEmpty(phoneNumber))
            {
                return(string.Empty);
            }

            PhoneNumber number = null;
            var         util   = PhoneNumberUtil.GetInstance();

            if (phoneNumber.StartsWith("+") || phoneNumber.StartsWith("00"))
            {
                if (phoneNumber.StartsWith("00"))
                {
                    phoneNumber = "+" + phoneNumber.Remove(0, 2);
                }

                number = util.Parse(phoneNumber, "");
                return(util.Format(number, PhoneNumberFormat.INTERNATIONAL));
            }
            else if (!string.IsNullOrEmpty(regionCode))
            {
                number = util.Parse(phoneNumber, regionCode);
                return(util.Format(number, PhoneNumberFormat.INTERNATIONAL));
            }
            return(string.Empty);
        }
        public IHttpActionResult Get(string value)
        {
            value = System.Web.HttpContext.Current.Server.UrlDecode(value);
            var util = PhoneNumberUtil.GetInstance();

            if (string.IsNullOrEmpty(value))
            {
                return(BadRequest());
            }
            try
            {
                var number = util.Parse(value, "CA");


                if (util.IsValidNumber(number))
                {
                    return(Ok(util.FormatInOriginalFormat(number, "CA")));
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch (NumberParseException)
            {
                return(BadRequest());
            }
        }
Ejemplo n.º 16
0
 static PhoneNumberUtil InitializePhoneUtilForTesting()
 {
     PhoneNumberUtil.ResetInstance();
     return(PhoneNumberUtil.GetInstance(
                TestMetaDataFilePrefix,
                CountryCodeToRegionCodeMapForTesting.GetCountryCodeToRegionCodeMap()));
 }
        // POST: api/libPhone
        public IHttpActionResult Post([FromBody] string value)
        {
            var util = PhoneNumberUtil.GetInstance();

            if (string.IsNullOrEmpty(value))
            {
                return(BadRequest());
            }
            try
            {
                var number = util.Parse(value, "CA");


                if (util.IsValidNumber(number))
                {
                    return(Ok(util.FormatInOriginalFormat(number, "CA")));
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch (NumberParseException)
            {
                return(BadRequest());
            }
        }
Ejemplo n.º 18
0
        public static async Task <string> GetPhoneHash(string phone)
        {
            PhoneNumber number = PhoneNumberUtil.GetInstance().Parse(phone, "US");

            phone = PhoneNumberUtil.GetInstance().Format(number, PhoneNumberFormat.E164);
            return(Convert.ToBase64String(await GetKey(phone, System.Text.Encoding.UTF8.GetBytes("Chadder Phone Salt"), 2000)));
        }
Ejemplo n.º 19
0
        //phonelib calls
        public ParsedPhoneNumber IsPhoneNumberValid(string phoneNumber, string defaultIsoCode)
        {
            var parsedNumber = new ParsedPhoneNumber();

            if (!string.IsNullOrEmpty(phoneNumber))
            {
                var phoneNumberUtil = PhoneNumberUtil.GetInstance();
                parsedNumber.IsViablePhoneNumber   = PhoneNumberUtil.IsViablePhoneNumber(phoneNumber);
                parsedNumber.ExtractPossibleNumber = PhoneNumberUtil.ExtractPossibleNumber(phoneNumber);
                parsedNumber.NormalizedNumber      = PhoneNumberUtil.Normalize(phoneNumber);
                parsedNumber.NormalizedDigitsOnly  = PhoneNumberUtil.NormalizeDigitsOnly(phoneNumber);
                if (parsedNumber.IsViablePhoneNumber.Value)
                {
                    var numberObject = phoneNumberUtil.Parse(phoneNumber, defaultIsoCode);
                    parsedNumber.E164Format     = phoneNumberUtil.Format(numberObject, PhoneNumberFormat.E164);
                    parsedNumber.IntFormat      = phoneNumberUtil.Format(numberObject, PhoneNumberFormat.INTERNATIONAL);
                    parsedNumber.IsValidNumber  = phoneNumberUtil.IsValidNumber(numberObject);
                    parsedNumber.CountryCode    = numberObject.CountryCode;
                    parsedNumber.HasCountryCode = numberObject.HasCountryCode;
                    parsedNumber.PreferredDomesticCarrierCode = numberObject.PreferredDomesticCarrierCode;
                    var geocoder = PhoneNumbers.PhoneNumberOfflineGeocoder.GetInstance();
                    parsedNumber.GeoCoderDescription = geocoder.GetDescriptionForNumber(numberObject, PhoneNumbers.Locale.English);
                    parsedNumber.NumberType          = phoneNumberUtil.GetNumberType(numberObject).ToString();
                }
            }

            return(parsedNumber);
        }
Ejemplo n.º 20
0
        public void Test_SA_Number()
        {
            var phoneNumbersToValidate = new List <string>()
            {
                "+270833077082", "0833077089", "+27833077084", "+270112781905", "0117681906", "+27112781907",
                "00270833077082", "(012)7681907", "99270833077082", " (012) 7681908"
            };

            phoneNumbersToValidate.Reverse();

            foreach (string phoneNumber in phoneNumbersToValidate)
            {
                var numberToCheck = phoneNumber;
                if (phoneNumber.StartsWith("00"))
                {
                    numberToCheck = "+" + phoneNumber.Remove(0, 2);
                }
                if (phoneNumber.StartsWith("99"))
                {
                    numberToCheck = "+" + phoneNumber.Remove(0, 2);
                }

                var libPhoneNumber = PhoneNumberUtil.GetInstance().Parse(numberToCheck, "ZA");

                Assert.True(PhoneNumberUtil.GetInstance().IsValidNumberForRegion(libPhoneNumber, "ZA"));
            }
        }
        void OnEntryTextChanged(object sender, TextChangedEventArgs args)
        {
            if (args.NewTextValue.Length == 0)
            {
                formatter.Clear();

                ((Entry)sender).Text = args.NewTextValue;
            }
            else
            {
                formatter.Clear();

                string formattedNumber = "";

                foreach (char digit in args.NewTextValue.Replace(" ", "").Replace("(", "").Replace(")", "").Replace("-", "").Replace("+", ""))
                {
                    formattedNumber = formatter.InputDigit(digit);
                }



                PhoneNumber phoneNumber = new PhoneNumber.Builder()
                                          .SetCountryCode(1)
                                          .SetNationalNumber(ulong.Parse(formattedNumber.Replace(" ", "").Replace("(", "").Replace(")", "").Replace("-", "").Replace("+", "")))
                                          .Build();



                bool isValid = PhoneNumberUtil.GetInstance().IsValidNumber(phoneNumber);

                ((Entry)sender).TextColor = isValid ? Color.Green : Color.DarkRed;

                ((Entry)sender).Text = formattedNumber;
            }
        }
Ejemplo n.º 22
0
        public static PhoneNumber Parse(string mobile, bool throwException)
        {
            try
            {
                var iso3166s = GetRegionInfos().Select(p => p.Name).ToList();

                PhoneNumber number = null;
                foreach (var iso3166 in iso3166s)
                {
                    PhoneNumber _number = PhoneNumberUtil.GetInstance().Parse(mobile, iso3166);

                    if (PhoneNumberUtil.GetInstance().IsPossibleNumber(_number))
                    {
                        number = _number;
                        break;
                    }
                }

                return(number);
            }
            catch
            {
                if (throwException)
                {
                    throw;
                }

                return(null);
            }
        }
Ejemplo n.º 23
0
        public async Task <PhoneNumberViewModel> Handle(CreatePhoneNumberCommand request, CancellationToken cancellationToken = default)
        {
            var contact = await _db.Contacts.SingleOrDefaultAsync(c => c.Id == request.ContactId, cancellationToken);

            if (contact == null)
            {
                throw new RequestException(nameof(request.ContactId), "Contact with specified Id not found");
            }

            var lib    = PhoneNumberUtil.GetInstance();
            var parsed = lib.Parse(request.Number, "HR");

            var number = new Domain.PhoneNumber
            {
                ContactId = request.ContactId,
                Number    = lib.Format(parsed, PhoneNumberFormat.E164)
            };

            _db.PhoneNumbers.Add(number);
            await _db.SaveChangesAsync(cancellationToken);

            var result = new PhoneNumberViewModel(number);

            _logger.LogDebug("Phone number {@PhoneNumber} added to contact {ContactName} with id {ContactId}", number, contact.Name, contact.Id);

            var notification = new PhoneNumberAddedNotification(new ContactViewModel(contact), result);
            await _mediator.Publish(notification);

            return(result);
        }
Ejemplo n.º 24
0
        public static PhoneNumber ParseAndValidate(string input)
        {
            try
            {
                var phoneNumberUtil = PhoneNumberUtil.GetInstance();
                var originalResult  = phoneNumberUtil.Parse(input, NationalLocaleSymbol);

                if (phoneNumberUtil.IsValidNumber(originalResult))
                {
                    return(originalResult);
                }

                var prefixedResult = phoneNumberUtil.Parse(DefaultCityPrefix + input, NationalLocaleSymbol);
                if (phoneNumberUtil.IsValidNumber(prefixedResult))
                {
                    return(prefixedResult);
                }

                return(null);
            }
            catch (NumberParseException)
            {
                return(null);
            }
        }
Ejemplo n.º 25
0
 public static bool IsValidPhone(string phone, string countryCode, string countryCodeName)
 {
     try
     {
         if (IsValidEmpty(phone) == false && IsValidIntgerNumber(phone) == true)
         {
             PhoneNumberUtil phoneUtil        = PhoneNumberUtil.GetInstance();
             PhoneNumber     queryPhoneNumber = phoneUtil.Parse(phone, countryCodeName);
             if (IsValidPhoneGoogle(phone, countryCode) == false)
             {
                 return(false);
             }
             //Valid
             return(phoneUtil.IsValidNumber(queryPhoneNumber));
         }
         else
         {
             return(false);
         }
     }
     catch
     {
         return(false);
     }
 }
        /// <summary>
        /// Checks if the input is an external number.
        /// </summary>
        /// <param name="input"></param>
        /// <returns>Information about the type of number the input is</returns>
        private static NumberStringType IsValidExternalNumber(string input)
        {
            PhoneNumberUtil  util   = PhoneNumberUtil.GetInstance();
            NumberStringType result = NumberStringType.NOT_POSSIBLE;

            if (PHONE_NUMBER_EX.Match(input).ToString() == input)
            {
                string numberString = FormatNumberString(input);
                try {
                    PhoneNumber numberProto = util.Parse(numberString, Config.Instance.DefaultRegion);
                    if (util.IsPossibleNumber(numberProto))
                    {
                        if (util.IsValidNumber(numberProto))
                        {
                            result = NumberStringType.EXTERNAL;
                        }
                        else
                        {
                            result = NumberStringType.NOT_VALID;
                        }
                    }
                } catch (Exception e) {
                    ClassLogger.Error(LogMessages.ErrorPhoneNumberValid, e.ToString());
                    result = NumberStringType.NOT_POSSIBLE;
                }
            }

            return(result);
        }
Ejemplo n.º 27
0
        public async Task <CommandHandlingResult> Handle(ProcessSmsCommand command, IEventPublisher eventPublisher)
        {
            _log.WriteInfo(nameof(ProcessSmsCommand), new { Phone = command.Phone.SanitizePhone() }, "Processing sms");

            var phone = command.Phone.GetValidPhone();

            if (phone != null)
            {
                var    phoneUtils  = PhoneNumberUtil.GetInstance();
                string countryCode = phoneUtils.GetRegionCodeForCountryCode(phone.CountryCode);
                var    provider    = await _settingsService.GetProviderByCountryAsync(countryCode);

                string id = await _smsRepository.AddAsync(new SmsMessage
                {
                    CountryCode = countryCode,
                    Message     = command.Message,
                    Phone       = command.Phone,
                    Provider    = provider
                });

                eventPublisher.PublishEvent(new SmsProviderProcessed
                {
                    Phone       = command.Phone,
                    Message     = command.Message,
                    Provider    = provider,
                    CountryCode = countryCode,
                    Id          = id
                });
            }

            return(CommandHandlingResult.Ok());
        }
Ejemplo n.º 28
0
 private static void EnsurePhoneUtil()
 {
     if (_phoneUtil == null)
     {
         _phoneUtil = PhoneNumberUtil.GetInstance();
     }
 }
Ejemplo n.º 29
0
        public static bool TryParseInternational(string value, out PhoneNo res)
        {
            var k = PhoneNumberUtil.GetInstance();

            res = null;

            try
            {
                var p          = k.Parse(value, null);
                var numberType = k.GetNumberType(p);

                if (numberType != PhoneNumberType.FIXED_LINE_OR_MOBILE && numberType != PhoneNumberType.MOBILE)
                {
                    return(false);
                }

                res = new PhoneNo
                {
                    InternationalValue = k.Format(p, PhoneNumberFormat.INTERNATIONAL).Replace(" ", string.Empty),
                    NationalValue      = k.Format(p, PhoneNumberFormat.NATIONAL).Replace(" ", string.Empty),
                    E164Value          = k.Format(p, PhoneNumberFormat.E164).Replace(" ", string.Empty),
                    Type        = numberType,
                    PhoneCode   = p.CountryCode,
                    CountryCode = k.GetRegionCodeForCountryCode(p.CountryCode)
                };

                return(true);
            }
            catch
            {
                return(false);
            }
        }
Ejemplo n.º 30
0
        public void TestPhoneNumber_HasCharacters()
        {
            var phonenumberUtil  = PhoneNumberUtil.GetInstance();
            var example          = phonenumberUtil.GetExampleNumber(Data.PhoneNumber.US_PHONE_NUMBER_REGION_KEY);
            var formattedExample = phonenumberUtil.Format(example, PhoneNumberFormat.INTERNATIONAL);

            var validator = new BiographicalTestClassValidator();
            var instance  = GetValidBiographical(() => true);
            var result    = validator.Validate(instance);

            Assert.IsTrue(result.IsValid);

            instance.PhoneNumber = "abc";
            result = validator.Validate(instance);
            Assert.IsFalse(result.IsValid);
            Assert.AreEqual(1, result.Errors.Count);

            Assert.AreEqual(
                String.Format(BiographicalTestClassValidator.PHONE_NUMBER_ERROR_MESSAGE,
                              Data.PhoneNumberType.Visiting.Value,
                              instance.PhoneNumber,
                              validator.GetPersonType(instance),
                              validator.GetNameDelegate()(instance),
                              formattedExample),
                result.Errors.First().ErrorMessage);
            Assert.IsInstanceOfType(result.Errors.First().CustomState, typeof(PhoneNumberErrorPath));
        }