static void Main(string[] args) { //Création des variable locales ConsoleKeyInfo Choix; // Création de la collection d'articles List <Article> MonCatalogue = new List <Article>(); //Creation des articles initiaux du catalogue MonCatalogue.Add(new Article() { RefArticle = 01, Nom = "Ecran Ordinateur", PrixVente = 124.55, Quantite = 100 }); MonCatalogue.Add(new Article() { RefArticle = 02, Nom = "ordinateur", PrixVente = 1240.75, Quantite = 200 }); MonCatalogue.Add(new Article() { RefArticle = 03, Nom = "Clavier", PrixVente = 89.20, Quantite = 10 }); MonCatalogue.Add(new Article() { RefArticle = 04, Nom = "Souris", PrixVente = 24.55, Quantite = 10 }); do { //Question posée à l'utilisateur, on récupère la valmeur de la touche appuyé Console.WriteLine("\nMenu Principal: \n" + "\t\t1 - Rechercher un Article par ref\n" + "\t\t2 - Ajouter un Article\n" + "\t\t3 - Supprimer un Artcile\n" + "\t\t4 - Modifier un Article\n" + "\t\t5 - Rechercher un Article par nom\n" + "\t\t6 - Rechercher un Article par intervalle de prix\n" + "\t\t7 - Afficher tous les articles\n" + "\t\t9 - Quittez le programme\n\n" + "Votre choix :"); // On récupère le choix de l'utilisateur Choix = Console.ReadKey(true); Console.Clear(); // On défini les différents comportement en fonction du choix récupéré switch (Choix.KeyChar) { // recherche d'un article par Référence case '1': Console.WriteLine("Recherche d'un article par Référence\n\n"); Console.WriteLine("Quelle référence recherchez vous :"); int TmpRef = Convert.ToInt32(Console.ReadLine()); Article ArticleTrouve = MonCatalogue.FirstOrDefault(i => i.RefArticle == TmpRef); if (ArticleTrouve == null) { Console.WriteLine("Nous sommes désolé, nous n'avons pas trouvé l'article que vous demandez"); } else { Console.WriteLine("Voici l'article avec la référence : " + ArticleTrouve.RefArticle); ArticleTrouve.ToString(ArticleTrouve.RefArticle, ArticleTrouve.Nom, ArticleTrouve.PrixVente, ArticleTrouve.Quantite); } Console.ReadKey(); Console.Clear(); break; // Ajout d'un Article dans le catalogue case '2': Console.WriteLine("Ajout d'un Article dans le catalogue\n\n"); Console.WriteLine("Référence de l'Article :"); int TmpRefAjout = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Nom de l'Article :"); String TmpNom = Console.ReadLine(); Console.WriteLine("Prix de l'Article :"); double TmpPrix = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Quantité de l'Article :"); int TmpQte = Convert.ToInt32(Console.ReadLine()); // A FAIRE Control de la saisie de l'utilisateur ??? MonCatalogue.Add(new Article(TmpRefAjout, TmpNom, TmpPrix, TmpQte)); Console.WriteLine("Article ajouté !!!"); Console.ReadKey(); Console.Clear(); break; // Suppression d'un article par référence case '3': Console.WriteLine("Suppression d'un article par référence\n\n"); Console.WriteLine("Quel est la référence de l'article que vous voulez supprimer :"); int TmpRefSupp = Convert.ToInt32(Console.ReadLine()); Article ArticleTrouve2 = MonCatalogue.FirstOrDefault(i => i.RefArticle == TmpRefSupp); if (ArticleTrouve2 == null) { Console.WriteLine("Cette référence n'existe pas, nous ne pouvons pas supprimer l'article correspondant"); } else { MonCatalogue.Remove(ArticleTrouve2); } Console.ReadKey(); Console.Clear(); break; // Modifier l'article par référence case '4': Console.WriteLine("Modifier l'article par référence\n\n"); Console.WriteLine("Quel est la référence de l'article que vous voulez modifier :"); int TmpRefModif = Convert.ToInt32(Console.ReadLine()); Article ArticleTrouve3 = MonCatalogue.FirstOrDefault(i => i.RefArticle == TmpRefModif); if (ArticleTrouve3 == null) { Console.WriteLine("Cette référence n'existe pas, nous ne pouvons pas modifier l'article correspondant"); } else { MonCatalogue.Remove(ArticleTrouve3); Console.WriteLine("Modifier la eéférence de l'Article " + ArticleTrouve3.RefArticle + " par :"); int TmpRefAjout2 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Modifier le nom de l'Article " + ArticleTrouve3.Nom + " par :"); String TmpNom2 = Console.ReadLine(); Console.WriteLine("Modifier le prix de l'Article " + ArticleTrouve3.PrixVente + " par :"); double TmpPrix2 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Modifier la Quantité de l'Article " + ArticleTrouve3.Quantite + " par :"); int TmpQte2 = Convert.ToInt32(Console.ReadLine()); // A FAIRE Control de la saisie de l'utilisateur ??? MonCatalogue.Add(new Article(TmpRefAjout2, TmpNom2, TmpPrix2, TmpQte2)); } Console.ReadKey(); Console.Clear(); break; // Recherche d'un article par Nom case '5': Console.WriteLine("Recherche d'un article par Nom\n\n"); Console.WriteLine("Quel est l'article que vous cherchez :"); String TmpNom3 = Console.ReadLine(); Article ArticleTrouve4 = MonCatalogue.FirstOrDefault(i => i.Nom == TmpNom3); if (ArticleTrouve4 == null) { Console.WriteLine("Nous sommes désolé, nous n'avons pas trouvé l'article que vous demandez"); } else { Console.WriteLine("Voici l'article avec le Nom " + ArticleTrouve4.Nom + " :"); ArticleTrouve4.ToString(ArticleTrouve4.RefArticle, ArticleTrouve4.Nom, ArticleTrouve4.PrixVente, ArticleTrouve4.Quantite); } Console.ReadKey(); Console.Clear(); break; // Rechercher un article par intervalle de prix case '6': Console.WriteLine("Recherche d'un article par intervalle de prix de vente\n\n"); Console.WriteLine("Quel est le prix de départ de votre intervalle :"); Double TmpPrixStart = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Quel est le prix de fin de votre intervalle :"); Double TmpPrixEnd = Convert.ToDouble(Console.ReadLine()); foreach (Article ArticleTrouvePrix in MonCatalogue) { if (ArticleTrouvePrix.PrixVente >= TmpPrixStart) { if (ArticleTrouvePrix.PrixVente <= TmpPrixEnd) { ArticleTrouvePrix.ToString(ArticleTrouvePrix.RefArticle, ArticleTrouvePrix.Nom, ArticleTrouvePrix.PrixVente, ArticleTrouvePrix.Quantite); } } } Console.ReadKey(); Console.Clear(); break; // Affichage de tous les articles du catalogue case '7': Console.WriteLine("Affichage de tous les articles du catalogue\n\n"); for (int i = 0; i < MonCatalogue.Count; i++) { MonCatalogue[i].ToString(MonCatalogue[i].RefArticle, MonCatalogue[i].Nom, MonCatalogue[i].PrixVente, MonCatalogue[i].Quantite); } Console.ReadKey(); Console.Clear(); break; // Permet de quitter le prohramme case '9': Console.WriteLine("\n\nMerci d'avoir utilisé notre programme, A+\n"); break; default: Console.WriteLine("\n\nERREUR SAISI CHOIX MENU\n\n"); Console.ReadKey(); Console.Clear(); break; } } while (Choix.KeyChar != '9'); Console.ReadKey(); }
static void Main(string[] args) { //Création des variable locales ConsoleKeyInfo Choix; ConsoleKeyInfo ConfirmeSupp; bool ChoixValide = false; // Création de la collection Catalogue, Panier et Compte Client List <Client> CompteClients = new List <Client>(); List <Article> MonCatalogue = new List <Article>(); List <Article> Panier = new List <Article>(); #region Creation des articles initiaux du catalogue MonCatalogue.Add(new Article() { Name = "Ecran Ordinateur", Categorie = "Informatique", Prix = 124.55, Quantite = 100 }); MonCatalogue.Add(new Article() { Name = "ordinateur", Categorie = "Informatique", Prix = 1240.75, Quantite = 200 }); MonCatalogue.Add(new Article() { Name = "Clavier", Categorie = "Informatique", Prix = 89.20, Quantite = 10 }); MonCatalogue.Add(new Article() { Name = "Souris", Categorie = "Informatique", Prix = 24.55, Quantite = 10 }); #endregion #region Creation de mes clients CompteClients.Add(new Client("GAUDRON", "Fabien", new DateTime(1983, 08, 03), "14 Route de Briare 45250 Ousson", "*****@*****.**", new Compte())); CompteClients.Add(new Client("BERTHELOT", "Pierre", new DateTime(1984, 04, 20), "50 Grande rue 26500 Bourg les Valence", "*****@*****.**", new Compte())); CompteClients.Add(new Client("LABAUME", "Gregory", new DateTime(1985, 08, 12), "Lieu dit Terregaie 58000 Pinsac", "*****@*****.**", new Compte())); #endregion do { #region Menu Principal do { Console.WriteLine("\n\t\t*************** Menu Principal ***************\n" + "\n\t\t1 - Menu CLIENT\n" + "\t\t2 - Menu Admin Site\n"); // On récupère le choix de l'utilisateur Choix = Console.ReadKey(true); try { if (Choix.KeyChar.Equals('1') || Choix.KeyChar.Equals('2')) { ChoixValide = true; } else { throw new FormatException(); } } catch (FormatException) { Console.WriteLine("Erreur de saisie, la valeur doit être 1 ou 2"); } }while (!ChoixValide); Console.Clear(); #endregion if (Choix.KeyChar.Equals('1')) { int IndexPersonneActive = 0; do { Console.WriteLine("Êtes vous un nouveau client ? ( y / n )"); Choix = Console.ReadKey(true); if (Choix.KeyChar.Equals('y')) { #region Ajout d'un nouveau client Console.WriteLine("Nom :"); string TmpNom = Console.ReadLine(); Console.WriteLine("Prenom :"); string TmpPrenom = Console.ReadLine(); Console.WriteLine("Date d'anniversaire :"); Console.WriteLine("Annee :"); int TmpAnnee = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Mois :"); int TmpMois = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Jour :"); int TmpJour = Convert.ToInt32(Console.ReadLine()); // Récuparation de l'adresse du client avec test de validation de l'adresse postale string TmpAdresse = "0"; bool AdresseValide = false; do { Console.WriteLine("Adresse Postale :"); try { TmpAdresse = Console.ReadLine(); AdresseValide = Client.IsValideAdressePostale(TmpAdresse); } catch (FormatException) { Console.WriteLine("Erreur de saisie, la valeur doit être une adresse postale valide"); } } while (!AdresseValide); // Récupération de l'adresse mail du nouveau client avec test de validation de l'adresse email string TmpMail = "0"; bool EmailValide = false; do { Console.WriteLine("Adresse Mail :"); try { TmpMail = Console.ReadLine(); EmailValide = Client.IsValideMail(TmpMail); } catch (FormatException) { Console.WriteLine("Erreur de saisie, la valeur doit être une adresse mail valide"); } }while (!EmailValide); CompteClients.Add(new Client(TmpNom, TmpPrenom, new DateTime(TmpAnnee, TmpMois, TmpJour), TmpAdresse, TmpMail, new Compte())); IndexPersonneActive = CompteClients.Count - 1; #endregion } else { #region Recherche du client actif Console.WriteLine("Quel est votre NOM :"); string TmpNom1 = Console.ReadLine().ToString(); Client ClientTrouve = CompteClients.FirstOrDefault(i => i.Nom == TmpNom1); if (ClientTrouve == null) { Console.WriteLine("Nous sommes désolé, nous n'avons pas trouvé votre Compte ?"); Console.ReadKey(); } else { Console.WriteLine(ClientTrouve.AfficherClient()); IndexPersonneActive = CompteClients.IndexOf(ClientTrouve); } #endregion } Console.Clear(); } while (IndexPersonneActive == 0); do { Console.WriteLine("\nMenu Client: \n" + "\t\t*************** Sous Menu Article ***************\n" + "\t\t1 - Rechercher un Article par ref\n" + "\t\t2 - Rechercher un Article par nom\n" + "\t\t3 - Afficher tous les articles\n" + "\n" + "\t\t*************** Sous Menu Panier ****************\n" + "\t\ta - Ajout d'un article dans votre panier\n" + "\t\tm - Modifier votre panier\n" + "\t\tv - Afficher votre Panier\n" + "\t\tp - Valider votre Panier\n" + "\n" + "\t\t*************** Sous Menu Application ************\n" + "\t\t9 - Quittez le programme\n\n" + "Bonjour " + CompteClients[IndexPersonneActive].Prenom + " !\n\n" + "Votre choix :"); // On récupère le choix de l'utilisateur Choix = Console.ReadKey(true); Console.Clear(); // On défini les différents comportement en fonction du choix récupéré switch (Choix.KeyChar) { #region Recherche d'un article par Référence case '1': Console.WriteLine("Recherche d'un article par Référence\n\n"); Console.WriteLine("Quelle référence recherchez vous :"); string TmpRef = Console.ReadLine().ToString(); Article ArticleTrouve = MonCatalogue.FirstOrDefault(i => i.IdArticle == TmpRef); if (ArticleTrouve == null) { Console.WriteLine("Nous sommes désolé, nous n'avons pas trouvé l'article que vous demandez"); } else { Console.WriteLine("Voici l'article avec la référence : " + ArticleTrouve.IdArticle); Console.WriteLine(ArticleTrouve.AfficherArticle()); } Console.ReadKey(); Console.Clear(); break; #endregion #region Recherche d'un article par Nom case '2': Console.WriteLine("Recherche d'un article par Nom\n\n"); Console.WriteLine("Quel est l'article que vous cherchez :"); String TmpName3 = Console.ReadLine(); Article ArticleTrouve4 = MonCatalogue.FirstOrDefault(i => i.Name == TmpName3); if (ArticleTrouve4 == null) { Console.WriteLine("Nous sommes désolé, nous n'avons pas trouvé l'article que vous demandez"); } else { Console.WriteLine("Voici l'article avec le Nom " + ArticleTrouve4.Name + " :"); Console.WriteLine(ArticleTrouve4.AfficherArticle()); } Console.ReadKey(); Console.Clear(); break; #endregion #region Affichage de tous les articles du catalogue case '3': Console.WriteLine("Affichage de tous les articles du catalogue\n\n"); for (int i = 0; i < MonCatalogue.Count; i++) { Console.WriteLine(MonCatalogue[i].AfficherArticle()); } Console.ReadKey(); Console.Clear(); break; #endregion #region Ajout d'un article dans le panier case 'a': Console.WriteLine("Ajout d'un article dans votre panier\n\n"); Article ArticleTrouve3 = new Article(); do { Console.WriteLine("Nom de l'article :"); string TmpNom = Console.ReadLine(); ArticleTrouve3 = MonCatalogue.FirstOrDefault(i => i.Name == TmpNom); if (ArticleTrouve3 == null) { Console.WriteLine("Nous sommes désolé, nous n'avons pas trouvé l'article que vous demandez"); } else { Console.WriteLine(ArticleTrouve3.AfficherArticle()); } } while (ArticleTrouve3 == null); Console.WriteLine("Ajouter cet article dans votre panier ? ( y / n )\n"); Choix = Console.ReadKey(true); if (Choix.KeyChar.Equals('y')) { Panier.Add(ArticleTrouve3); Console.WriteLine("\nArticle ajouté à votre panier !!!"); } else { Console.WriteLine("L'article n'a pas été ajouté à votre panier !!!"); } Console.ReadKey(); Console.Clear(); break; #endregion #region Modification du panier case 'm': Console.WriteLine("Modifier le panier par nom\n\n"); Console.WriteLine("Quel est le nom de l'article que vous voulez supprimer :"); string TmpNomModif = Console.ReadLine(); Article ArticleTrouve1 = Panier.FirstOrDefault(i => i.Name == TmpNomModif); int Indice = Panier.FindIndex(i => i.Name == TmpNomModif); if (ArticleTrouve1 == null) { Console.WriteLine("Ce Nom n'existe pas dans votre panier, nous ne pouvons pas modifier votre panier"); } else { Console.WriteLine("Voici l'article " + ArticleTrouve1.Name + " :"); Console.WriteLine(Panier[Indice].AfficherArticle()); Console.WriteLine("Voulez vous le supprimer de votre panier ? ( y / n ) "); Choix = Console.ReadKey(true); if (Choix.KeyChar.Equals('y')) { Panier.Remove(ArticleTrouve1); Console.WriteLine("Article supprimé de votre panier !!!"); } else { Console.WriteLine("L'article n'a pas été retiré de votre panier !!!"); } } Console.ReadKey(); Console.Clear(); break; #endregion #region Affichage du panier case 'v': if (Panier.Count != 0) { for (int i = 0; i < Panier.Count; i++) { Console.WriteLine(Panier[i].AfficherArticle()); } } else { Console.WriteLine("Votre Panier est vide, depechez vous d'acheter !!!!"); } Console.ReadKey(); Console.Clear(); break; #endregion #region Validation du panier case 'p': if (Panier.Count == 0) { Console.WriteLine("Votre Panier est vide, depechez vous d'acheter !!!!"); } else { for (int i = 0; i < Panier.Count; i++) { Console.WriteLine(Panier[i].AfficherArticle()); } Console.WriteLine("Voulez vous VALIDER et PAYER votre panier ? ( y / n ) "); Choix = Console.ReadKey(true); if (Choix.KeyChar.Equals('y')) { Console.WriteLine("Vérification des données bancaires en cours..."); for (int i = 0; i <= 100; i++) { System.Threading.Thread.Sleep(50); if (i == 10 || i == 24 || i == 42 || i == 59 || i == 67 || i == 86 || i == 100) { Console.Write(" " + i + " % "); } else { Console.Write("*"); } } // Test anniversaire CompteClients[IndexPersonneActive].Compte.CadeauAnniversaire(CompteClients[IndexPersonneActive]); // Calcul des depenses effectuées et affectation à la variable depense for (int i = 0; i < Panier.Count; i++) { CompteClients[IndexPersonneActive].Compte.Depense += Panier[i].Prix; } Console.WriteLine("\n\nPayement VALIDE...MERCI"); } } Console.ReadKey(); Console.Clear(); break; #endregion #region Permet de quitter le prohramme + test de frappe case '9': Console.WriteLine("\n\nMerci d'avoir utilisé notre programme, A+\n"); break; default: try { throw new ArgumentOutOfRangeException(); } catch (ArgumentOutOfRangeException) { Console.WriteLine("Erreur de saisie, merci de recommencer"); Console.ReadKey(); Console.Clear(); } break; #endregion } } while (Choix.KeyChar != '9'); } else { do { #region Affichage du menu pour l'utilisateur, on récupère la valeur de la touche appuyée Console.WriteLine("\nMenu Back Office: \n" + "\t\t*************** Sous Menu Article ***************\n" + "\t\t1 - Rechercher un Article par ref\n" + "\t\t2 - Ajouter un Article\n" + "\t\t3 - Supprimer un Artcile\n" + "\t\t4 - Modifier un Article\n" + "\t\t5 - Rechercher un Article par nom\n" + "\t\t6 - Rechercher un Article par intervalle de prix\n" + "\t\t7 - Afficher tous les articles\n" + "\n" + "\t\t*************** Sous Menu Client ****************\n" + "\t\tf - Recherche d'un client par nom\n" + "\t\ta - Ajout d'un client\n" + "\t\ts - Supprimmr un clients\n" + "\t\tm - Modifier un clients\n" + "\t\tb - Afficher toutes les fiches clients\n" + "\n" + "\t\t*************** Sous Menu Application ************\n" + "\t\t9 - Quittez le programme\n\n" + "Votre choix :"); // On récupère le choix de l'utilisateur Choix = Console.ReadKey(true); Console.Clear(); #endregion // On défini les différents comportement en fonction du choix récupéré switch (Choix.KeyChar) { #region Recherche d'un article par Référence case '1': Console.WriteLine("Recherche d'un article par Référence\n\n"); Console.WriteLine("Quelle référence recherchez vous :"); string TmpRef = Console.ReadLine().ToString(); Article ArticleTrouve = MonCatalogue.FirstOrDefault(i => i.IdArticle == TmpRef); if (ArticleTrouve == null) { Console.WriteLine("Nous sommes désolé, nous n'avons pas trouvé l'article que vous demandez"); } else { Console.WriteLine("Voici l'article avec la référence : " + ArticleTrouve.IdArticle); Console.WriteLine(ArticleTrouve.AfficherArticle()); } Console.ReadKey(); Console.Clear(); break; #endregion #region Ajout d'un Article dans le catalogue case '2': Console.WriteLine("Ajout d'un Article dans le catalogue\n\n"); Console.WriteLine("Catégorie de l'article :"); string TmpCategorie = Console.ReadLine(); Console.WriteLine("Name de l'Article :"); String TmpName = Console.ReadLine(); // Recuperation et test du prix de l'article bool PrixValide = false; double TmpPrix = 0.0; do { Console.WriteLine("Prix de l'Article :"); try { TmpPrix = Convert.ToDouble(Console.ReadLine()); PrixValide = true; } catch (FormatException) { Console.WriteLine("Erreur de saisie, la valeur doit être un nombre décimale"); } } while (!PrixValide); // Recuperation et test de la quantite de l'article bool QuantiteValide = false; int TmpQte = 0; do { Console.WriteLine("Quantité de l'Article :"); try { TmpQte = Convert.ToInt32(Console.ReadLine()); if (TmpQte < 0) { throw new FormatException(); } QuantiteValide = true; } catch (FormatException) { Console.WriteLine("Erreur de saisie, la valeur doit être un nombre entier positif"); } } while (!QuantiteValide); // On teste la creation de l'article try { MonCatalogue.Add(new Article(TmpName, TmpCategorie, TmpPrix, TmpQte)); Console.WriteLine("Article ajouté !!!"); } catch (Exception) { Console.WriteLine("Une erreur de déclaration d'Article a été obtenu, l'article n'a pas été ajouté"); } Console.ReadKey(); Console.Clear(); break; #endregion #region Suppression d'un article par référence case '3': Console.WriteLine("Suppression d'un article par référence\n\n"); Console.WriteLine("Quel est la référence de l'article que vous voulez supprimer :"); string TmpRefSupp = Console.ReadLine(); Article ArticleTrouve2 = MonCatalogue.FirstOrDefault(i => i.IdArticle == TmpRefSupp); if (ArticleTrouve2 == null) { Console.WriteLine("Cette référence n'existe pas, nous ne pouvons pas supprimer l'article correspondant"); } else { MonCatalogue.Remove(ArticleTrouve2); } Console.ReadKey(); Console.Clear(); break; #endregion #region Modifier l'article par référence case '4': Console.WriteLine("Modifier l'article par référence\n\n"); Console.WriteLine("Quel est la référence de l'article que vous voulez modifier :"); string TmpRefModif = Console.ReadLine(); Article ArticleTrouve3 = MonCatalogue.FirstOrDefault(i => i.IdArticle == TmpRefModif); if (ArticleTrouve3 == null) { Console.WriteLine("Cette référence n'existe pas, nous ne pouvons pas modifier l'article correspondant"); } else { MonCatalogue.Remove(ArticleTrouve3); Console.WriteLine("Modifier la catégorie de l'Article " + ArticleTrouve3.Categorie + " par :"); string TmpCategorie2 = Console.ReadLine(); Console.WriteLine("Modifier le nom de l'Article " + ArticleTrouve3.Name + " par :"); string TmpName2 = Console.ReadLine(); // Recuperation et test du prix de l'article bool PrixValide1 = false; double TmpPrix2 = 0.0; do { Console.WriteLine("Modifier le prix de l'Article " + ArticleTrouve3.Prix + " par :"); try { TmpPrix2 = Convert.ToDouble(Console.ReadLine()); PrixValide1 = true; } catch (FormatException) { Console.WriteLine("Erreur de saisie, la valeur doit être un nombre décimale"); } } while (!PrixValide1); // Recuperation et test de la quantite de l'article bool QuantiteValide1 = false; int TmpQte2 = 0; do { Console.WriteLine("Modifier la Quantité de l'Article " + ArticleTrouve3.Quantite + " par :"); try { TmpQte2 = Convert.ToInt32(Console.ReadLine()); if (TmpQte2 < 0) { throw new FormatException(); } QuantiteValide1 = true; } catch (FormatException) { Console.WriteLine("Erreur de saisie, la valeur doit être un nombre entier positif"); } } while (!QuantiteValide1); MonCatalogue.Add(new Article(TmpName2, TmpCategorie2, TmpPrix2, TmpQte2)); Console.WriteLine("Fiche Client modifié !!!"); } Console.ReadKey(); Console.Clear(); break; #endregion #region Recherche d'un article par Nom case '5': Console.WriteLine("Recherche d'un article par Nom\n\n"); Console.WriteLine("Quel est l'article que vous cherchez :"); String TmpName3 = Console.ReadLine(); Article ArticleTrouve4 = MonCatalogue.FirstOrDefault(i => i.Name == TmpName3); if (ArticleTrouve4 == null) { Console.WriteLine("Nous sommes désolé, nous n'avons pas trouvé l'article que vous demandez"); } else { Console.WriteLine("Voici l'article avec le Nom " + ArticleTrouve4.Name + " :"); Console.WriteLine(ArticleTrouve4.AfficherArticle()); } Console.ReadKey(); Console.Clear(); break; #endregion #region Rechercher un article par intervalle de prix case '6': Console.WriteLine("Recherche d'un article par intervalle de prix de vente\n\n"); Console.WriteLine("Quel est le prix de départ de votre intervalle :"); Double TmpPrixStart = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Quel est le prix de fin de votre intervalle :"); Double TmpPrixEnd = Convert.ToDouble(Console.ReadLine()); foreach (Article ArticleTrouvePrix in MonCatalogue) { if (ArticleTrouvePrix.Prix >= TmpPrixStart) { if (ArticleTrouvePrix.Prix <= TmpPrixEnd) { Console.WriteLine(ArticleTrouvePrix.AfficherArticle()); } } } Console.ReadKey(); Console.Clear(); break; #endregion #region Affichage de tous les articles du catalogue case '7': Console.WriteLine("Affichage de tous les articles du catalogue\n\n"); for (int i = 0; i < MonCatalogue.Count; i++) { Console.WriteLine(MonCatalogue[i].AfficherArticle()); } Console.ReadKey(); Console.Clear(); break; #endregion #region Ajout d'un client dans la list CompteClient case 'a': Console.WriteLine("Ajout d'un client dans la base CompteClient\n\n"); Console.WriteLine("Nom du client :"); string TmpNom = Console.ReadLine(); Console.WriteLine("Prenom du client :"); string TmpPrenom = Console.ReadLine(); Console.WriteLine("Date d'anniversaire du client :"); Console.WriteLine("Annee :"); int TmpAnnee = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Mois :"); int TmpMois = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Jour :"); int TmpJour = Convert.ToInt32(Console.ReadLine()); // Récuparation de l'adresse du client avec test de validation de l'adresse postale string TmpAdresse = "0"; bool AdresseValide = false; do { Console.WriteLine("Adresse du client :"); try { TmpAdresse = Console.ReadLine(); AdresseValide = Client.IsValideAdressePostale(TmpAdresse); } catch (FormatException) { Console.WriteLine("Erreur de saisie, la valeur doit être une adresse postale valide"); } } while (!AdresseValide); // Récupération de l'adresse mail du nouveau client avec test de validation de l'adresse email string TmpMail = "0"; bool EmailValide = false; do { Console.WriteLine("Mail du client :"); try { TmpMail = Console.ReadLine(); EmailValide = Client.IsValideMail(TmpMail); } catch (FormatException) { Console.WriteLine("Erreur de saisie, la valeur doit être une adresse mail valide"); } }while (!EmailValide); CompteClients.Add(new Client(TmpNom, TmpPrenom, new DateTime(TmpAnnee, TmpMois, TmpJour), TmpAdresse, TmpMail, new Compte())); Console.WriteLine("Client ajouté !!!"); Console.ReadKey(); Console.Clear(); break; #endregion #region Recherche d'un client par nom case 'f': Console.WriteLine("Recherche d'un client par Nom\n\n"); Console.WriteLine("Quelle nom de client recherchez vous :"); string TmpNom1 = Console.ReadLine().ToString(); Client ClientTrouve = CompteClients.FirstOrDefault(i => i.Nom == TmpNom1); if (ClientTrouve == null) { Console.WriteLine("Nous sommes désolé, nous n'avons pas trouvé le client que vous demandez"); } else { Console.WriteLine("Voici le client demnadé : "); Console.WriteLine(ClientTrouve.AfficherClient()); } Console.ReadKey(); Console.Clear(); break; #endregion #region Modifier un client par nom case 'm': Console.WriteLine("Modifier le client par nom\n\n"); Console.WriteLine("Quel est le nom du client que vous voulez modifier :"); string TmpNomModif = Console.ReadLine(); Client ClientTrouve1 = CompteClients.FirstOrDefault(i => i.Nom == TmpNomModif); int Indice = CompteClients.FindIndex(i => i.Nom == TmpNomModif); if (ClientTrouve1 == null) { Console.WriteLine("Ce Nom n'existe pas, nous ne pouvons pas modifier le client correspondant"); } else { Console.WriteLine("Modifier le nom du client " + ClientTrouve1.Nom + " par :"); CompteClients[Indice].Nom = Console.ReadLine(); Console.WriteLine("Modifier le prenom du client " + ClientTrouve1.Prenom + " par :"); CompteClients[Indice].Prenom = Console.ReadLine(); Console.WriteLine("Modifier la date de Naisance du client " + ClientTrouve1.DateNaissance + " par :"); Console.WriteLine("Date d'anniversaire du client :"); Console.WriteLine("Annee :"); int TmpAnnee2 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Mois :"); int TmpMois2 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Jour :"); int TmpJour2 = Convert.ToInt32(Console.ReadLine()); CompteClients[Indice].DateNaissance = new DateTime(TmpAnnee2, TmpMois2, TmpJour2); CompteClients[Indice].AdresseMail = Console.ReadLine(); // Récuparation de l'adresse du client avec test de validation de l'adresse postale bool AdresseValide1 = false; do { Console.WriteLine("Modifier l'adresse du client " + ClientTrouve1.Adresse + " par :"); try { TmpAdresse = Console.ReadLine(); AdresseValide = Client.IsValideAdressePostale(TmpAdresse); CompteClients[Indice].Adresse = TmpAdresse; } catch (FormatException) { Console.WriteLine("Erreur de saisie, la valeur doit être une adresse postale valide"); } } while (!AdresseValide1); // Récupération de l'adresse mail du nouveau client avec test de validation de l'adresse email bool EmailValide1 = false; do { Console.WriteLine("Modifier l'adresse mail du client " + ClientTrouve1.AdresseMail + " par :"); try { TmpMail = Console.ReadLine(); EmailValide = Client.IsValideMail(TmpMail); CompteClients[Indice].AdresseMail = TmpMail; } catch (FormatException) { Console.WriteLine("Erreur de saisie, la valeur doit être une adresse mail valide"); } }while (!EmailValide1); } Console.ReadKey(); Console.Clear(); break; #endregion #region Affichage de tous les clients case 'b': Console.WriteLine("Affichage de tous les clients du site\n\n"); for (int i = 0; i < CompteClients.Count; i++) { Console.WriteLine(CompteClients[i].AfficherClient()); } Console.ReadKey(); Console.Clear(); break; #endregion #region Suppression d'un client case 's': Console.WriteLine("Suppression d'un client par Nom\n\n"); Console.WriteLine("Quel est le nom du client que vous voulez supprimer :"); String TmpNom2 = Console.ReadLine(); Client ClientTrouve2 = CompteClients.FirstOrDefault(i => i.Nom == TmpNom2); if (ClientTrouve2 == null) { Console.WriteLine("Nous sommes désolé, nous n'avons pas trouvé le client que vous demandez"); } else { Console.WriteLine("Voici le client a supprimer :"); Console.WriteLine(ClientTrouve2.AfficherClient()); Console.WriteLine("Confirmer la suppression ? ( y / n ) :"); // On récupère le choix de l'utilisateur ConfirmeSupp = Console.ReadKey(true); switch (ConfirmeSupp.KeyChar) { case 'y': ClientTrouve2.Compte = null; CompteClients.Remove(ClientTrouve2); Console.WriteLine("Compte client supprimé"); break; default: Console.WriteLine("Compte client NON supprimé"); break; } } Console.ReadKey(); Console.Clear(); break; #endregion #region Permet de quitter le prohramme + test de frappe case '9': Console.WriteLine("\n\nMerci d'avoir utilisé notre programme, A+\n"); Console.ReadKey(); Console.Clear(); break; default: try { throw new ArgumentOutOfRangeException(); } catch (ArgumentOutOfRangeException) { Console.WriteLine("Erreur de saisie, merci de recommencer"); Console.ReadKey(); Console.Clear(); } break; #endregion } } while (Choix.KeyChar != '9'); } } while (true); }