/// <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); }
/// <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 }