/// <summary>
 /// vérification si la clé rib est correcte
 /// </summary>
 /// <param name="value"></param>
 /// <returns></returns>
 public bool VerifCalculRib(string value)
 {
     if (string.IsNullOrEmpty(_codeBanque) | string.IsNullOrEmpty(_codeGuichet) | string.IsNullOrEmpty(Numero))
     {
         throw (new ApplicationException("La saisie du code guichet, banque et le numéro de compte est obligatoire."));
     }
     return(Compte.CalculRib(this.CodeBanque, this.CodeGuichet, Compte.TranformeCompte(this.Numero)).ToString().Equals(value));
 }
        /// <summary>
        /// calcul le numéro de rib d'un compte banquaire
        /// 97-long.part(concat(codebanque+codeguichet+compte banquaire))*100 modulo 97
        /// </summary>
        /// <param name="codeBanque"></param>
        /// <param name="codeGuichet"></param>
        /// <param name="compte"></param>
        /// <returns></returns>
        public static ulong CalculRib(string codeBanque, string codeGuichet, string compte)
        {
            StringBuilder sB = new StringBuilder();
            ulong         reste;

            reste = ulong.Parse(codeBanque) % 97;
            sB.Append(reste);
            sB.Append(codeGuichet);
            reste = ulong.Parse(sB.ToString()) % 97;

            sB.Clear();
            sB.Append(reste);
            sB.Append(Compte.TranformeCompte(compte));
            reste = ulong.Parse(sB.ToString()) % 97;

            sB.Clear();
            sB.Append(reste);
            sB.Append("00");
            reste = ulong.Parse(sB.ToString()) % 97;

            return(97 - reste);
        }