예제 #1
0
        /// <summary>
        /// Ouvre un nouveau compte
        /// </summary>
        /// <param name="type">Le type de compte à ouvrir</param>
        /// <param name="prenom">Le prénom du propriétaire</param>
        /// <param name="nom">Le nom du propriétaire</param>
        /// <param name="montantInitial">Le montant initial déposé dans le compte</param>
        /// <returns>Le numéro du compte créé</returns>
        public int AjouterCompte(string type, string prenom, string nom, double montantInitial)
        {
            Compte nouveauCompte;

            switch (type)
            {
            case CompteCheques.IdentificateurType:  nouveauCompte = new CompteCheques(prenom, nom);  break;

            case CompteEpargne.IdentificateurType:  nouveauCompte = new CompteEpargne(prenom, nom);  break;

            // La limite de crédit est générée aléatoirement en multiple de 100$ entre 500$ et 3000$
            case CompteCredit.IdentificateurType:   nouveauCompte = new CompteCredit(prenom, nom, _generateurAleatoire.Next(5, 31) * 100);  break;

            default: throw new Exception("Type de compte invalide");
            }

            _comptes.Add(nouveauCompte);
            Sauvegarder(nouveauCompte);

            // Si un montant initial est donné, on effectue une transaction de dépôt dans le compte
            if (montantInitial > 0)
            {
                Deposer(nouveauCompte, montantInitial);
            }

            return(nouveauCompte.Numero);
        }
예제 #2
0
        /// <summary>
        /// Lit le fichier des comptes et le charge en mémoire
        /// </summary>
        private void ChargerComptes()
        {
            try
            {
                using (StreamReader fichier = new StreamReader(NomFichierComptes))
                {
                    string ligne = fichier.ReadLine();
                    while (ligne != null)
                    {
                        try
                        {
                            string[] valeurs = ligne.Split(';');

                            Compte nouveauCompte;
                            switch (valeurs[0]) // valeurs[0] contient le type du compte
                            {
                            case CompteCheques.IdentificateurType:  nouveauCompte = new CompteCheques(valeurs);  break;

                            case CompteEpargne.IdentificateurType:  nouveauCompte = new CompteEpargne(valeurs);  break;

                            case CompteCredit.IdentificateurType:   nouveauCompte = new CompteCredit(valeurs);   break;

                            default: throw new Exception();
                            }

                            // Doit vérifier qu'un compte portant le même numéro n'existe pas déjà
                            if (IndexCompte(nouveauCompte.Numero) == -1)
                            {
                                // Le compte n'existe pas, il peut être ajouté à la liste
                                _comptes.Add(nouveauCompte);
                            }
                        }
                        catch { } // Ignore silencieusement les erreurs et passe à la prochaine ligne

                        ligne = fichier.ReadLine();
                    }
                }
            }
            catch { } // Rien à faire si le fichier n'existe pas
        }