Exemple #1
0
            public void EmptyIsInvalid()
            {
                string      input = "", output = null;
                CultureInfo culture = CultureInfo.InvariantCulture;

                Assert.IsFalse(PhoneNumberAttribute.ConvertNationalToInternational(input, culture, out output));
                Assert.IsNull(output);
            }
Exemple #2
0
            public void InternationalBasicWorks()
            {
                string      input = "+33123456789", output = null;
                CultureInfo culture = CultureInfo.InvariantCulture;

                Assert.IsTrue(PhoneNumberAttribute.ConvertNationalToInternational(input, culture, out output));
                Assert.AreEqual(input, output);
            }
Exemple #3
0
            public void NationalInvariantFails()
            {
                string      input = "123.456.789", output = null;
                CultureInfo culture = CultureInfo.InvariantCulture;

                Assert.IsFalse(PhoneNumberAttribute.ConvertNationalToInternational(input, culture, out output));
                Assert.IsNull(output);
            }
Exemple #4
0
        public void ReturnsTrueWithValidValue()
        {
            var    attr     = new PhoneNumberAttribute();
            string value    = "+33123456798";
            bool   expected = true;
            bool   result   = attr.IsValid(value);

            Assert.AreEqual(expected, result);
        }
Exemple #5
0
        public void ReturnsTrueWithEmptyValue()
        {
            var    attr     = new PhoneNumberAttribute();
            string value    = string.Empty;
            bool   expected = true;
            bool   result   = attr.IsValid(value);

            Assert.AreEqual(expected, result);
        }
        public async Task <string> RenderAsync(string model)
        {
            string display = PhoneNumberAttribute.GetDisplay(model);

            if (!string.IsNullOrWhiteSpace(display))
            {
                model = display;
            }
            return(await TextEditComponentBase.RenderTextAsync(this, model, "yt_softelvdm_twilioprocessor_phonenumber"));
        }
Exemple #7
0
        public void ReturnsFalseWithObviousInvalid()
        {
            var    attr = new PhoneNumberAttribute();
            string value = "foobar", name = "PhoneNumber";
            var    context = new ValidationContext(new object(), null, null);

            context.MemberName = name;
            var result = attr.GetValidationResult(value, context);

            Assert.IsNotNull(result);
            Assert.AreEqual("Use the international phone number format (+xxyyyyyyyyyy).", result.ErrorMessage);
            Assert.AreEqual(1, result.MemberNames.Count());
            Assert.AreEqual(name, result.MemberNames.Single());
        }
		public void PhoneNumbersCountry()
		{
			var sut = new PhoneNumberAttribute("NZ");

			Assert.IsTrue(sut.IsValid("")); //empty
			Assert.IsTrue(sut.IsValid((string)null)); //null
			Assert.IsTrue(sut.IsValid(1)); //not string
			Assert.IsTrue(sut.IsValid("+64 21 000 0000")); //valid international number
			Assert.IsTrue(sut.IsValid("+64210000000")); //valid number no spaces
			Assert.IsTrue(sut.IsValid("021 000 0000")); //valid number as country code specified
			Assert.IsTrue(sut.IsValid("021-00 000 00")); //valid number weird spaces and dashes

			Assert.IsFalse(sut.IsValid("021 000 00")); //invalid number as too short
			Assert.IsFalse(sut.IsValid("021 000 000000")); //invalid number as too long
		}
        public void PhoneNumbersCountry()
        {
            var sut = new PhoneNumberAttribute("NZ");

            Assert.IsTrue(sut.IsValid(""));                //empty
            Assert.IsTrue(sut.IsValid((string)null));      //null
            Assert.IsTrue(sut.IsValid(1));                 //not string
            Assert.IsTrue(sut.IsValid("+64 21 000 0000")); //valid international number
            Assert.IsTrue(sut.IsValid("+64210000000"));    //valid number no spaces
            Assert.IsTrue(sut.IsValid("021 000 0000"));    //valid number as country code specified
            Assert.IsTrue(sut.IsValid("021-00 000 00"));   //valid number weird spaces and dashes

            Assert.IsFalse(sut.IsValid("021 000 00"));     //invalid number as too short
            Assert.IsFalse(sut.IsValid("021 000 000000")); //invalid number as too long
        }
 /// <summary>
 /// Called before action runs.
 /// </summary>
 /// <remarks>Used to normalize all phone numbers to E164 format.</remarks>
 public static Task <string> ControllerPreprocessActionAsync(string propName, string model, ModelStateDictionary modelState)
 {
     if (!string.IsNullOrWhiteSpace(model))
     {
         string number = PhoneNumberAttribute.GetE164(model);
         if (!string.IsNullOrWhiteSpace(number))
         {
             model = number;
         }
         else
         {
             modelState.AddModelError(propName, __ResStr("invPhone", "{0} is an invalid phone number", model));
         }
     }
     return(Task.FromResult(model));
 }
Exemple #11
0
        public async Task <bool> AddItemAsync(BlockedNumberEntry data)
        {
            data.Created = DateTime.UtcNow;
            data.Number  = PhoneNumberAttribute.GetE164(data.Number);

            if (!await DataProvider.AddAsync(data))
            {
                return(false);
            }
            await Auditing.AddAuditAsync($"{nameof(BlockedNumberDataProvider)}.{nameof(AddItemAsync)}", Dataset, Guid.Empty,
                                         $"Add Blocked Number {data.Id}",
                                         DataBefore : null,
                                         DataAfter : data
                                         );

            return(true);
        }
Exemple #12
0
        public async Task <UpdateStatusEnum> UpdateItemAsync(BlockedNumberEntry data)
        {
            BlockedNumberEntry origData = Auditing.Active ? await GetItemByIdentityAsync(data.Id) : null;

            data.Updated = DateTime.UtcNow;
            data.Number  = PhoneNumberAttribute.GetE164(data.Number);
            UpdateStatusEnum status = await DataProvider.UpdateByIdentityAsync(data.Id, data);

            if (status != UpdateStatusEnum.OK)
            {
                return(status);
            }

            await Auditing.AddAuditAsync($"{nameof(BlockedNumberDataProvider)}.{nameof(UpdateItemAsync)}", Dataset, Guid.Empty,
                                         $"Update Blocked Number {data.Id}",
                                         DataBefore : origData,
                                         DataAfter : data
                                         );

            return(UpdateStatusEnum.OK);
        }
Exemple #13
0
        // LOAD/SAVE
        // LOAD/SAVE
        // LOAD/SAVE

        public Task <BlockedNumberEntry> GetItemAsync(string number)
        {
            number = PhoneNumberAttribute.GetE164(number);
            return(DataProvider.GetAsync(number, null));
        }
 public static string FormatPhoneNumber(string phoneNumber)
 {
     return(PhoneNumberAttribute.GetDisplay(phoneNumber));
 }