コード例 #1
0
        private static bool hasValidBbanEntryCharacterType(BBanEntry entry, string entryValue, out IbanFormatViolation validationResult)
        {
            validationResult = IbanFormatViolation.NO_VIOLATION;

            switch (entry.CharacterType)
            {
            case BBanEntryCharacterType.A:
                foreach (char c in entryValue.ToCharArray())
                {
                    if (!char.IsUpper(c))
                    {
                        validationResult = IbanFormatViolation.BBAN_ONLY_UPPER_CASE_LETTERS;
                        break;
                    }
                }
                break;

            case BBanEntryCharacterType.C:
                foreach (char c in entryValue.ToCharArray())
                {
                    if (!char.IsLetterOrDigit(c))
                    {
                        validationResult = IbanFormatViolation.BBAN_ONLY_DIGITS_OR_LETTERS;
                        break;
                    }
                }
                break;

            case BBanEntryCharacterType.N:
                foreach (char c in entryValue.ToCharArray())
                {
                    if (!char.IsDigit(c))
                    {
                        validationResult = IbanFormatViolation.BBAN_ONLY_DIGITS;
                        break;
                    }
                }
                break;
            }

            return(validationResult == IbanFormatViolation.NO_VIOLATION);
        }
コード例 #2
0
        private static void validateBbanEntryCharacterType(BBanEntry entry, string entryValue)
        {
            switch (entry.CharacterType)
            {
            case BBanEntryCharacterType.A:
                foreach (char c in entryValue.ToCharArray())
                {
                    if (!char.IsUpper(c))
                    {
                        throw new IbanFormatException($"'{entryValue}' must contain only upper case letters",
                                                      IbanFormatViolation.BBAN_ONLY_UPPER_CASE_LETTERS, c, entry.EntryType, entryValue);
                    }
                }
                break;

            case BBanEntryCharacterType.C:
                foreach (char c in entryValue.ToCharArray())
                {
                    if (!char.IsLetterOrDigit(c))
                    {
                        throw new IbanFormatException($"'{entryValue}' must contain only letters or digits",
                                                      IbanFormatViolation.BBAN_ONLY_DIGITS_OR_LETTERS, c, entry.EntryType, entryValue);
                    }
                }
                break;

            case BBanEntryCharacterType.N:
                foreach (char c in entryValue.ToCharArray())
                {
                    if (!char.IsDigit(c))
                    {
                        throw new IbanFormatException($"'{entryValue}' must contain only digits",
                                                      IbanFormatViolation.BBAN_ONLY_DIGITS, c, entry.EntryType, entryValue);
                    }
                }
                break;
            }
        }
コード例 #3
0
        /// <summary>
        /// Loads BBANs structures definitions
        /// </summary>
        private void loadStructures()
        {
            _bbanStructures = new SortedDictionary <string, BBanStructure>();


            _bbanStructures.Add("AD", new BBanStructure(BBanEntry.BankCode(4, "n"),
                                                        BBanEntry.BranchCode(4, "n"),
                                                        BBanEntry.AccountNumber(12, "c")));

            _bbanStructures.Add("AE", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.AccountNumber(16, "c")));

            _bbanStructures.Add("AL", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.BranchCode(4, "n"),
                                                        BBanEntry.NationalCheckDigit(1, "n"),
                                                        BBanEntry.AccountNumber(16, "c")));

            _bbanStructures.Add("AT", new BBanStructure(BBanEntry.BankCode(5, "n"),
                                                        BBanEntry.AccountNumber(11, "n")));

            _bbanStructures.Add("AZ", new BBanStructure(BBanEntry.BankCode(4, "a"),
                                                        BBanEntry.AccountNumber(20, "c")));

            _bbanStructures.Add("BH", new BBanStructure(BBanEntry.BankCode(4, "a"),
                                                        BBanEntry.AccountNumber(14, "n")));

            _bbanStructures.Add("BE", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.AccountNumber(7, "n"),
                                                        BBanEntry.NationalCheckDigit(2, "n")));

            _bbanStructures.Add("BA", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.BranchCode(3, "n"),
                                                        BBanEntry.AccountNumber(8, "n"),
                                                        BBanEntry.NationalCheckDigit(2, "n")));

            _bbanStructures.Add("BR", new BBanStructure(BBanEntry.BankCode(8, "n"),
                                                        BBanEntry.BranchCode(5, "n"),
                                                        BBanEntry.AccountNumber(10, "n"),
                                                        BBanEntry.AccountType(1, "a"),
                                                        BBanEntry.OwnerAccountNumber(1, "c")));

            _bbanStructures.Add("BG", new BBanStructure(BBanEntry.BankCode(4, "n"),
                                                        BBanEntry.BranchCode(4, "n"),
                                                        BBanEntry.AccountType(2, "n"),
                                                        BBanEntry.AccountNumber(8, "c")));

            _bbanStructures.Add("CR", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.AccountNumber(14, "n")));

            _bbanStructures.Add("CY", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.BranchCode(5, "n"),
                                                        BBanEntry.AccountNumber(16, "c")));

            _bbanStructures.Add("CZ", new BBanStructure(BBanEntry.BankCode(4, "n"),
                                                        BBanEntry.AccountNumberPrefix(6, "n"),
                                                        BBanEntry.AccountNumber(10, "n")));

            _bbanStructures.Add("DE", new BBanStructure(BBanEntry.BankCode(8, "n"),
                                                        BBanEntry.AccountNumber(10, "n")));

            _bbanStructures.Add("DK", new BBanStructure(BBanEntry.BankCode(4, "n"),
                                                        BBanEntry.AccountNumber(10, "n")));

            _bbanStructures.Add("DO", new BBanStructure(BBanEntry.BankCode(4, "c"),
                                                        BBanEntry.AccountNumber(20, "n")));

            _bbanStructures.Add("EE", new BBanStructure(BBanEntry.BankCode(2, "n"),
                                                        BBanEntry.BranchCode(2, "n"),
                                                        BBanEntry.AccountNumber(11, "n"),
                                                        BBanEntry.NationalCheckDigit(1, "n")));

            _bbanStructures.Add("ES", new BBanStructure(BBanEntry.BankCode(4, "n"),
                                                        BBanEntry.BranchCode(4, "n"),
                                                        BBanEntry.NationalCheckDigit(2, "n"),
                                                        BBanEntry.AccountNumber(10, "n")));

            _bbanStructures.Add("FO", new BBanStructure(BBanEntry.BankCode(4, "n"),
                                                        BBanEntry.AccountNumber(9, "n"),
                                                        BBanEntry.NationalCheckDigit(1, "n")));

            _bbanStructures.Add("FI", new BBanStructure(BBanEntry.BankCode(6, "n"),
                                                        BBanEntry.AccountNumber(7, "n"),
                                                        BBanEntry.NationalCheckDigit(1, "n")));

            _bbanStructures.Add("FR", new BBanStructure(BBanEntry.BankCode(5, "n"),
                                                        BBanEntry.BranchCode(5, "n"),
                                                        BBanEntry.AccountNumber(11, "c"),
                                                        BBanEntry.NationalCheckDigit(2, "n")));

            _bbanStructures.Add("GB", new BBanStructure(BBanEntry.BankCode(4, "a"),
                                                        BBanEntry.BranchCode(6, "n"),
                                                        BBanEntry.AccountNumber(8, "n")));

            _bbanStructures.Add("GE", new BBanStructure(BBanEntry.BankCode(2, "a"),
                                                        BBanEntry.AccountNumber(16, "n")));

            _bbanStructures.Add("GI", new BBanStructure(BBanEntry.BankCode(4, "a"),
                                                        BBanEntry.AccountNumber(15, "c")));

            _bbanStructures.Add("GL", new BBanStructure(BBanEntry.BankCode(4, "n"),
                                                        BBanEntry.AccountNumber(10, "n")));

            _bbanStructures.Add("GR", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.BranchCode(4, "n"),
                                                        BBanEntry.AccountNumber(16, "c")));

            _bbanStructures.Add("GT", new BBanStructure(BBanEntry.BankCode(4, "c"),
                                                        BBanEntry.AccountNumber(20, "c")));

            _bbanStructures.Add("HR", new BBanStructure(BBanEntry.BankCode(7, "n"),
                                                        BBanEntry.AccountNumber(10, "n")));

            _bbanStructures.Add("HU", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.BranchCode(4, "n"),
                                                        BBanEntry.AccountNumber(16, "n"),
                                                        BBanEntry.NationalCheckDigit(1, "n")));

            _bbanStructures.Add("CH", new BBanStructure(BBanEntry.BankCode(5, "n"),
                                                        BBanEntry.AccountNumber(12, "c")));

            _bbanStructures.Add("IS", new BBanStructure(BBanEntry.BankCode(4, "n"),
                                                        BBanEntry.BranchCode(2, "n"),
                                                        BBanEntry.AccountNumber(6, "n"),
                                                        BBanEntry.IdentificationNumber(10, "n")));

            _bbanStructures.Add("IL", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.BranchCode(3, "n"),
                                                        BBanEntry.AccountNumber(13, "n")));

            _bbanStructures.Add("IR", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.AccountNumber(19, "n")));

            _bbanStructures.Add("IT", new BBanStructure(BBanEntry.NationalCheckDigit(1, "a"),
                                                        BBanEntry.BankCode(5, "n"),
                                                        BBanEntry.BranchCode(5, "n"),
                                                        BBanEntry.AccountNumber(12, "c")));

            _bbanStructures.Add("JO", new BBanStructure(BBanEntry.BankCode(4, "a"),
                                                        BBanEntry.BranchCode(4, "n"),
                                                        BBanEntry.AccountNumber(18, "c")));

            _bbanStructures.Add("KZ", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.AccountNumber(13, "c")));

            _bbanStructures.Add("KW", new BBanStructure(BBanEntry.BankCode(4, "a"),
                                                        BBanEntry.AccountNumber(22, "c")));

            _bbanStructures.Add("LV", new BBanStructure(BBanEntry.BankCode(4, "a"),
                                                        BBanEntry.AccountNumber(13, "c")));

            _bbanStructures.Add("LB", new BBanStructure(BBanEntry.BankCode(4, "n"),
                                                        BBanEntry.AccountNumber(20, "c")));

            _bbanStructures.Add("LI", new BBanStructure(BBanEntry.BankCode(5, "n"),
                                                        BBanEntry.AccountNumber(12, "c")));

            _bbanStructures.Add("LT", new BBanStructure(BBanEntry.BankCode(5, "n"),
                                                        BBanEntry.AccountNumber(11, "n")));

            _bbanStructures.Add("LU", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.AccountNumber(13, "c")));

            _bbanStructures.Add("MK", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.AccountNumber(10, "c"),
                                                        BBanEntry.NationalCheckDigit(2, "n")));

            _bbanStructures.Add("MT", new BBanStructure(BBanEntry.BankCode(4, "a"),
                                                        BBanEntry.BranchCode(5, "n"),
                                                        BBanEntry.AccountNumber(18, "c")));

            _bbanStructures.Add("MR", new BBanStructure(BBanEntry.BankCode(5, "n"),
                                                        BBanEntry.BranchCode(5, "n"),
                                                        BBanEntry.AccountNumber(11, "n"),
                                                        BBanEntry.NationalCheckDigit(2, "n")));

            _bbanStructures.Add("MU", new BBanStructure(BBanEntry.BankCode(6, "c"),
                                                        BBanEntry.BranchCode(2, "n"),
                                                        BBanEntry.AccountNumber(18, "c")));

            _bbanStructures.Add("MD", new BBanStructure(BBanEntry.BankCode(2, "c"),
                                                        BBanEntry.AccountNumber(18, "c")));

            _bbanStructures.Add("MC", new BBanStructure(BBanEntry.BankCode(5, "n"),
                                                        BBanEntry.BranchCode(5, "n"),
                                                        BBanEntry.AccountNumber(11, "c"),
                                                        BBanEntry.NationalCheckDigit(2, "n")));

            _bbanStructures.Add("ME", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.AccountNumber(13, "n"),
                                                        BBanEntry.NationalCheckDigit(2, "n")));

            _bbanStructures.Add("NL", new BBanStructure(BBanEntry.BankCode(4, "a"),
                                                        BBanEntry.AccountNumber(10, "n")));

            _bbanStructures.Add("NO", new BBanStructure(BBanEntry.BankCode(4, "n"),
                                                        BBanEntry.AccountNumber(6, "n"),
                                                        BBanEntry.NationalCheckDigit(1, "n")));

            _bbanStructures.Add("PK", new BBanStructure(BBanEntry.BankCode(4, "c"),
                                                        BBanEntry.AccountNumber(16, "n")));

            _bbanStructures.Add("PS", new BBanStructure(BBanEntry.BankCode(4, "a"),
                                                        BBanEntry.AccountNumber(21, "c")));

            _bbanStructures.Add("PL", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.BranchCode(4, "n"),
                                                        BBanEntry.NationalCheckDigit(1, "n"),
                                                        BBanEntry.AccountNumber(16, "n")));

            _bbanStructures.Add("PT", new BBanStructure(BBanEntry.BankCode(4, "n"),
                                                        BBanEntry.BranchCode(4, "n"),
                                                        BBanEntry.AccountNumber(11, "n"),
                                                        BBanEntry.NationalCheckDigit(2, "n")));

            _bbanStructures.Add("QA", new BBanStructure(BBanEntry.BankCode(4, "a"),
                                                        BBanEntry.AccountNumber(21, "c")));

            _bbanStructures.Add("RS", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.AccountNumber(13, "n"),
                                                        BBanEntry.NationalCheckDigit(2, "n")));
            _bbanStructures.Add("RO", new BBanStructure(BBanEntry.BankCode(4, "a"),
                                                        BBanEntry.AccountNumber(16, "c")));

            _bbanStructures.Add("TL", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.AccountNumber(14, "n"),
                                                        BBanEntry.NationalCheckDigit(2, "n")));

            _bbanStructures.Add("TN", new BBanStructure(BBanEntry.BankCode(2, "n"),
                                                        BBanEntry.BranchCode(3, "n"),
                                                        BBanEntry.AccountNumber(15, "c")));

            _bbanStructures.Add("TR", new BBanStructure(BBanEntry.BankCode(5, "n"),
                                                        BBanEntry.NationalCheckDigit(1, "c"),
                                                        BBanEntry.AccountNumber(16, "c")));

            _bbanStructures.Add("SM", new BBanStructure(BBanEntry.NationalCheckDigit(1, "a"),
                                                        BBanEntry.BankCode(5, "n"),
                                                        BBanEntry.BranchCode(5, "n"),
                                                        BBanEntry.AccountNumber(12, "c")));

            _bbanStructures.Add("SA", new BBanStructure(BBanEntry.BankCode(2, "n"),
                                                        BBanEntry.AccountNumber(18, "c")));

            _bbanStructures.Add("SK", new BBanStructure(BBanEntry.BankCode(4, "n"),
                                                        BBanEntry.AccountNumberPrefix(6, "n"),
                                                        BBanEntry.AccountNumber(10, "n")));

            _bbanStructures.Add("SI", new BBanStructure(BBanEntry.BankCode(2, "n"),
                                                        BBanEntry.BranchCode(3, "n"),
                                                        BBanEntry.AccountNumber(8, "n"),
                                                        BBanEntry.NationalCheckDigit(2, "n")));

            _bbanStructures.Add("SE", new BBanStructure(BBanEntry.BankCode(3, "n"),
                                                        BBanEntry.AccountNumber(17, "n")));

            _bbanStructures.Add("UA", new BBanStructure(BBanEntry.BankCode(6, "n"),
                                                        BBanEntry.AccountNumber(19, "n")));

            _bbanStructures.Add("VG", new BBanStructure(BBanEntry.BankCode(4, "c"),
                                                        BBanEntry.AccountNumber(16, "n")));

            _bbanStructures.Add("XK", new BBanStructure(BBanEntry.BankCode(2, "n"),
                                                        BBanEntry.BranchCode(2, "n"),
                                                        BBanEntry.AccountNumber(10, "n"),
                                                        BBanEntry.NationalCheckDigit(2, "n")));
        }