Thursday, 23 October 2014

Controllo IBAN in C#

Oggi cercando l'algoritmo di controllo dell'IBAN su google ho trovato questo post ( http://meow.altervista.org/blog/come-controllare-la-validita-del-codice-iban-in-java/ ) con l'algoritmo e un chiaro esempio in Java. Ho convertito la routing in C#, non che mancassero gli esempi direttamente in questo linguaggio, ma che diamine.. ecco la funzione. Bisogna creare un riferimento a System.Numerics nel progetto che usa la funzione. .NET >= 4, per via di BigInteger

        private bool ibanvalido(string iban)
        {
            iban = iban.ToUpper();
            if (iban.Length < 27) { return false; }
            int valoreperiban = 0;
            StringBuilder builder = new StringBuilder();
            string ibanscambiato = iban.Substring(4, iban.Length - 4) + iban.Substring(0, 4);
            for (int i = 0; i < ibanscambiato.Length; i++)
            {
                char ch = ibanscambiato[i];
                if (ch >= 'A' && ch <= 'Z') { valoreperiban = ch - 55; builder.Append(valoreperiban.ToString()); } else { builder.Append(ch); }
            }

            System.Numerics.BigInteger ibanConvertito = System.Numerics.BigInteger.Parse(builder.ToString());

            System.Numerics.BigInteger resto = System.Numerics.BigInteger.Remainder(ibanConvertito, 97);

            if (resto.Equals(1)) { return true; } else { return false; }
        }


No comments:

Post a Comment