예제 #1
0
        /// <summary>
        ///     ''' Dato un Iban ritorna una decomposizione
        ///     ''' </summary>
        ///     ''' <param name="iban"></param>
        ///     ''' <returns></returns>
        ///     ''' <remarks></remarks>
        public IbanInfo DecomponiIban(string iban)
        {
            IbanInfo oIbanDec = new IbanInfo();

            System.Text.StringBuilder sbBanca           = new System.Text.StringBuilder();
            System.Text.StringBuilder sbSportello       = new System.Text.StringBuilder();
            System.Text.StringBuilder sbNumeroCC        = new System.Text.StringBuilder();
            System.Text.StringBuilder sbCodiceControllo = new System.Text.StringBuilder();
            int iLenMaxIban = Math.Min(iban.Length, this.IbanLength);

            // Esegue decomposizione
            for (int index = 4; index <= iLenMaxIban - 1; index++)
            {
                switch (this.mIbanCodifica[index])
                {
                case 'B':
                {
                    sbBanca.Append(iban[index]);
                    break;
                }

                case 'S':
                {
                    sbSportello.Append(iban[index]);
                    break;
                }

                case 'K':
                {
                    sbCodiceControllo.Append(iban[index]);
                    break;
                }

                case 'C':
                {
                    sbNumeroCC.Append(iban[index]);
                    break;
                }

                default:
                {
                    break;
                }
                }
            }

            // Imposta campi
            oIbanDec.IbanCompleto    = iban;
            oIbanDec.CodicePaese     = this.mCodiceIsoNazione;
            oIbanDec.CheckDigit      = iban.Substring(2, 2);
            oIbanDec.CodiceControllo = sbCodiceControllo.ToString();
            oIbanDec.CodiceBanca     = sbBanca.ToString();
            oIbanDec.CodiceSportello = sbSportello.ToString();
            oIbanDec.NumeroConto     = sbNumeroCC.ToString();
            oIbanDec.IbanPaperFormat = Iban.ToPaperFormat(iban);

            return(oIbanDec);
        }
예제 #2
0
        /// <summary>
        ///     ''' Dati alcuni valori standard che compongono un iban ritorna le informazioni iban
        ///     ''' secondo la codifica del paese
        ///     ''' </summary>
        ///     ''' <param name="checkDigit"></param>
        ///     ''' <param name="codiceControllo"></param>
        ///     ''' <param name="codiceBanca"></param>
        ///     ''' <param name="codiceSportello"></param>
        ///     ''' <param name="numeroConto"></param>
        ///     ''' <returns></returns>
        ///     ''' <remarks></remarks>
        public IbanInfo RicomponiIban(string checkDigit, string codiceControllo, string codiceBanca, string codiceSportello, string numeroConto)
        {
            IbanInfo oIbanInfo = new IbanInfo();

            System.Text.StringBuilder sbIban = new System.Text.StringBuilder(this.mCodiceIsoNazione, this.IbanLength);
            char cCurrChar  = ' ';
            int  iCurrIndex = 0;

            // Imposta dati base
            checkDigit      = checkDigit.PadRight(2);
            codiceControllo = codiceControllo.PadRight(this.mCodiceControlloLength);
            codiceBanca     = codiceBanca.PadRight(this.mCodiceBancaLength);
            codiceSportello = codiceSportello.PadRight(this.mCodiceSportelloLength);
            numeroConto     = numeroConto.PadRight(this.mNumeroContoLength);

            // Esegue decomposizione
            for (int index = 2; index <= this.mIbanCodifica.Length - 1; index++)
            {
                if (cCurrChar != this.mIbanCodifica[index])
                {
                    iCurrIndex = 0;
                    cCurrChar  = this.mIbanCodifica[index];
                }

                switch (cCurrChar)
                {
                case '0':
                {
                    sbIban.Append(checkDigit[iCurrIndex]);
                    break;
                }

                case 'B':
                {
                    sbIban.Append(codiceBanca[iCurrIndex]);
                    break;
                }

                case 'S':
                {
                    sbIban.Append(codiceSportello[iCurrIndex]);
                    break;
                }

                case 'K':
                {
                    sbIban.Append(codiceControllo[iCurrIndex]);
                    break;
                }

                case 'C':
                {
                    sbIban.Append(numeroConto[iCurrIndex]);
                    break;
                }

                default:
                {
                    break;
                }
                }

                // Incrementa indice interno
                iCurrIndex += 1;
            }

            oIbanInfo.CodicePaese     = this.mCodiceIsoNazione;
            oIbanInfo.CheckDigit      = checkDigit;
            oIbanInfo.CodiceControllo = codiceControllo;
            oIbanInfo.CodiceBanca     = codiceBanca;
            oIbanInfo.CodiceSportello = codiceSportello;
            oIbanInfo.NumeroConto     = numeroConto;
            oIbanInfo.IbanCompleto    = sbIban.ToString();
            oIbanInfo.IbanPaperFormat = Iban.ToPaperFormat(oIbanInfo.IbanCompleto);

            return(oIbanInfo);
        }
예제 #3
0
 /// <summary>
 ///     ''' Costruttore statico che inizializza le informazioni sui paesi
 ///     ''' </summary>
 ///     ''' <remarks></remarks>
 static Iban()
 {
     Iban.CaricaCodiciPaese();
 }