Ejemplo n.º 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));
        }
Ejemplo n.º 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));
        }
Ejemplo n.º 3
0
 public static Iban?Parse(string value, IbanValidationLevels levels)
 => Parse(value, IbanStyles.None, levels);
Ejemplo n.º 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));
        }
Ejemplo n.º 5
0
 private Iban(IbanParts parts, IbanValidationLevels levels)
 {
     _parts             = parts;
     VerificationLevels = levels;
 }
Ejemplo n.º 6
0
 public static Outcome <Iban> TryParse(string value, IbanValidationLevels levels)
 => TryParse(value, IbanStyles.None, levels);
Ejemplo n.º 7
0
 // WARNING: This always returns false for IbanValidationLevels.None.
 public static bool Contains(this IbanValidationLevels @this, IbanValidationLevels levels)
 => (@this & levels) != 0;
Ejemplo n.º 8
0
 public static Outcome TryValidate(IbanParts parts, IbanValidationLevels levels)
 => new IbanValidator(levels).TryValidate(parts);
Ejemplo n.º 9
0
 public static bool Validate(IbanParts parts, IbanValidationLevels levels)
 => new IbanValidator(levels).Validate(parts);
Ejemplo n.º 10
0
 public IbanValidator(IbanValidationLevels levels)
 {
     _verifyIntegrity      = levels.Contains(IbanValidationLevels.Integrity);
     _verifyISOCountryCode = levels.Contains(IbanValidationLevels.ISOCountryCode);
     _verifyBban           = levels.Contains(IbanValidationLevels.Bban);
 }