예제 #1
0
        private bool validateException7(SortCodeRange sortCodeRange)
        {
            if (fullAccountNumber[12] == 9)
            {
                sortCodeRange.U = 0;
                sortCodeRange.V = 0;
                sortCodeRange.W = 0;
                sortCodeRange.X = 0;
                sortCodeRange.Y = 0;
                sortCodeRange.Z = 0;
                sortCodeRange.A = 0;
                sortCodeRange.B = 0;
            }
            switch (sortCodeRange.ValidationMethod)
            {
            case ValidationMethod.dblal:
                return(validateDblal(sortCodeRange));

            case ValidationMethod.mod10:
                return(validateMod10(sortCodeRange));

            default:
                return(validateMod11(sortCodeRange));
            }
        }
예제 #2
0
        private int sumIndividualDigits(SortCodeRange sortCodeRange)
        {
            var weighted_u     = sortCodeRange.U * fullAccountNumber[0];
            var weighted_v     = sortCodeRange.V * fullAccountNumber[1];
            var weighted_w     = sortCodeRange.W * fullAccountNumber[2];
            var weighted_x     = sortCodeRange.X * fullAccountNumber[3];
            var weighted_y     = sortCodeRange.Y * fullAccountNumber[4];
            var weighted_z     = sortCodeRange.Z * fullAccountNumber[5];
            var weighted_a     = sortCodeRange.A * fullAccountNumber[6];
            var weighted_b     = sortCodeRange.B * fullAccountNumber[7];
            var weighted_c     = sortCodeRange.C * fullAccountNumber[8];
            var weighted_d     = sortCodeRange.D * fullAccountNumber[9];
            var weighted_e     = sortCodeRange.E * fullAccountNumber[10];
            var weighted_f     = sortCodeRange.F * fullAccountNumber[11];
            var weighted_g     = sortCodeRange.G * fullAccountNumber[12];
            var weighted_h     = sortCodeRange.H * fullAccountNumber[13];
            var weightedString = string.Concat(weighted_u, weighted_v, weighted_w,
                                               weighted_x, weighted_y, weighted_z,
                                               weighted_a, weighted_b, weighted_c,
                                               weighted_d, weighted_e, weighted_f,
                                               weighted_g, weighted_h);
            var sum = 0;

            for (int i = 0; i < 14; i++)
            {
                sum += weightedString[i];
            }
            return(sum);
        }
예제 #3
0
        private int sumWeightings(SortCodeRange sortCodeRange)
        {
            var weighted_u = sortCodeRange.U * fullAccountNumber[0];
            var weighted_v = sortCodeRange.V * fullAccountNumber[1];
            var weighted_w = sortCodeRange.W * fullAccountNumber[2];
            var weighted_x = sortCodeRange.X * fullAccountNumber[3];
            var weighted_y = sortCodeRange.Y * fullAccountNumber[4];
            var weighted_z = sortCodeRange.Z * fullAccountNumber[5];
            var weighted_a = sortCodeRange.A * fullAccountNumber[6];
            var weighted_b = sortCodeRange.B * fullAccountNumber[7];
            var weighted_c = sortCodeRange.C * fullAccountNumber[8];
            var weighted_d = sortCodeRange.D * fullAccountNumber[9];
            var weighted_e = sortCodeRange.E * fullAccountNumber[10];
            var weighted_f = sortCodeRange.F * fullAccountNumber[11];
            var weighted_g = sortCodeRange.G * fullAccountNumber[12];
            var weighted_h = sortCodeRange.H * fullAccountNumber[13];

            return(weighted_u + weighted_v + weighted_w + weighted_x + weighted_y + weighted_z
                   + weighted_a + weighted_b + weighted_c + weighted_d + weighted_e + weighted_f + weighted_g
                   + weighted_h);
        }
예제 #4
0
 private bool validateException4(SortCodeRange sortCodeRange)
 {
     return(sumWeightings(sortCodeRange) % 11 == int.Parse(string.Concat(fullAccountNumber[12], fullAccountNumber[13])));
 }
예제 #5
0
 private bool validateMod11(SortCodeRange sortCodeRange)
 {
     return(sumWeightings(sortCodeRange) % 11 == 0);
 }
예제 #6
0
 private bool validateDblal(SortCodeRange sortCodeRange)
 {
     return(sumIndividualDigits(sortCodeRange) % 10 == 0);
 }