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)); }
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)); }
public static Iban?Parse(string value, IbanValidationLevels levels) => Parse(value, IbanStyles.None, levels);
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)); }
private Iban(IbanParts parts, IbanValidationLevels levels) { _parts = parts; VerificationLevels = levels; }
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;
public static Outcome TryValidate(IbanParts parts, IbanValidationLevels levels) => new IbanValidator(levels).TryValidate(parts);
public static bool Validate(IbanParts parts, IbanValidationLevels levels) => new IbanValidator(levels).Validate(parts);
public IbanValidator(IbanValidationLevels levels) { _verifyIntegrity = levels.Contains(IbanValidationLevels.Integrity); _verifyISOCountryCode = levels.Contains(IbanValidationLevels.ISOCountryCode); _verifyBban = levels.Contains(IbanValidationLevels.Bban); }