Beispiel #1
0
        public static Outcome <Iban> TryParse(string value, IbanStyles styles, IbanValidationLevels levels)
        {
            if (value == null)
            {
                return(Outcome <Iban> .FromError(Format.Current(Strings.InvalidIbanValue, value)));
            }

            string input = PreprocessInput(value, styles);

            return(from val in IbanParts.TryParse(input)
                   where IbanValidator.TryValidate(val, levels)
                   select new Iban(val, levels));
        }
Beispiel #2
0
        public static Iban?Parse(string value, IbanStyles styles, IbanValidationLevels levels)
        {
            if (value == null)
            {
                return(null);
            }

            var val = PreprocessInput(value, styles);

            var parts = IbanParts.Parse(val);

            if (!parts.HasValue)
            {
                return(null);
            }

            if (!IbanValidator.Validate(parts.Value, levels))
            {
                return(null);
            }

            return(new Iban(parts.Value, levels));
        }
Beispiel #3
0
 public static Iban?Parse(string value, IbanValidationLevels levels)
 => Parse(value, IbanStyles.None, levels);
Beispiel #4
0
        public static Iban Create(string countryCode, string checkDigits, string bban, IbanValidationLevels levels)
        {
            var parts = IbanParts.Create(countryCode, checkDigits, bban);

            IbanValidator.TryValidate(parts, levels)
            .OnError(err => { throw new ArgumentException(err); });

            return(new Iban(parts, levels));
        }
Beispiel #5
0
 private Iban(IbanParts parts, IbanValidationLevels levels)
 {
     _parts             = parts;
     VerificationLevels = levels;
 }
Beispiel #6
0
 public static Outcome <Iban> TryParse(string value, IbanValidationLevels levels)
 => TryParse(value, IbanStyles.None, levels);
 // WARNING: This always returns false for IbanValidationLevels.None.
 public static bool Contains(this IbanValidationLevels @this, IbanValidationLevels levels)
 => (@this & levels) != 0;
Beispiel #8
0
 public static Outcome TryValidate(IbanParts parts, IbanValidationLevels levels)
 => new IbanValidator(levels).TryValidate(parts);
Beispiel #9
0
 public static bool Validate(IbanParts parts, IbanValidationLevels levels)
 => new IbanValidator(levels).Validate(parts);
Beispiel #10
0
 public IbanValidator(IbanValidationLevels levels)
 {
     _verifyIntegrity      = levels.Contains(IbanValidationLevels.Integrity);
     _verifyISOCountryCode = levels.Contains(IbanValidationLevels.ISOCountryCode);
     _verifyBban           = levels.Contains(IbanValidationLevels.Bban);
 }