//Menus #region [Interface] Menu Principal /// <summary> /// Affiche le menu principal -> Se connecter | S'inscrire | Quitter le programme /// </summary> public static void MenuPrincipal() { while (true) { Console.Clear(); Console.WriteLine("Bonjour, veuillez vous identifier ou vous inscrire:" + "\n\t [1] - SE CONNECTER" + "\n\t [2] - S'INSCRIRE" + "\n\t [x] - QUITTER LE PROGRAMME"); switch (Console.ReadKey(true).Key) { case ConsoleKey.NumPad1: Console.Clear(); SeConnecter(); break; case ConsoleKey.NumPad2: Console.Clear(); Fonctions.Inscription(); break; case ConsoleKey.Divide: Console.Clear(); Fonctions.InscriptionAdministrateur(); break; case ConsoleKey.X: Run = false; return; } } }
/// <summary> /// Interface du client pour faire ses achats /// </summary> public static void AcheterProduit() { #region Initialisation des variables principales Fonctions.AfficherMenuAcheter(); List <Produit> Panier = new List <Produit>(); List <Commande> ListeCommande = new List <Commande>(); decimal PrixPanier = 0; bool MesTest = false; bool MesTest2 = false; string message; int IDClientActuel = Fonctions.UtilisateurActuelID; int start = 0; int limit = 10; string TrierPar = "Nom_Produit"; Fonctions.DisplayLimitProduct(start, TrierPar, limit); List <Produit> AllProduits = new List <Produit>(); AllProduits = DataAccess.GetAllProducts(); decimal taille = AllProduits.Count; int pageActuel = 1; decimal pagesTotal = Math.Ceiling(Fonctions.CalculPageMax(taille, limit)); Console.WriteLine("\n Page {0} sur {1}", pageActuel, pagesTotal); bool display = false; #endregion while (display == false) { switch (Console.ReadKey(true).Key) { #region Fonctionnalité : Trier les produits case ConsoleKey.T: Console.Write("Trier par [1] Prix(Croissant), [2] Nom(Ordre Alphabetique) ou [3] Categorie(Ordre Alphabetique) : "); switch (Console.ReadKey(true).Key) { case ConsoleKey.NumPad1: TrierPar = "Prix_Produit"; break; case ConsoleKey.NumPad2: TrierPar = "Nom_Produit"; break; case ConsoleKey.NumPad3: TrierPar = "Nom_Categorie"; break; } goto case ConsoleKey.Escape; #endregion #region Fonctionnalité : Nombre de produits à afficher par pages case ConsoleKey.A: while (!MesTest) { try { Console.Write("Combien de produit souhaitez vous afficher par pages ? "); //<------------- limit = Convert.ToInt32(Console.ReadLine()); MesTest = true; } catch (FormatException e) { Console.WriteLine(e.Message); } } MesTest = false; pagesTotal = Math.Ceiling(Fonctions.CalculPageMax(taille, limit)); Console.Clear(); Fonctions.AfficherMenuAcheter(); Fonctions.DisplayLimitProduct(start, TrierPar, limit); Console.WriteLine("\n Page {0} sur {1}", pageActuel, pagesTotal); break; #endregion #region Fonctionnalité : Quitter le programme case ConsoleKey.Q: Console.WriteLine("APPUYER SUR UNE TOUCHE POUR RETOURNER AU MENU CLIENT"); display = true; Console.ReadKey(); Console.Clear(); Fonctions.InterfaceClient(); break; #endregion #region Fonctionnalité : Réafficher les produits case ConsoleKey.Escape: Fonctions.AfficherMenuAcheter(); start = 0; Fonctions.DisplayLimitProduct(start, TrierPar, limit); AllProduits = DataAccess.GetAllProducts(); taille = AllProduits.Count; pageActuel = 1; pagesTotal = Math.Ceiling(Fonctions.CalculPageMax(taille, limit)); Console.WriteLine("\n Page {0} sur {1}", pageActuel, pagesTotal); break; #endregion #region Fonctionnalité : Parcourir les differentes pages avec la flèche de droite case ConsoleKey.RightArrow: Fonctions.AfficherMenuAcheter(); if (start < taille - limit) { start = start + limit; pageActuel = pageActuel + 1; } Fonctions.DisplayLimitProduct(start, TrierPar, limit); Console.WriteLine("\n Page {0} sur {1}", pageActuel, pagesTotal); break; #endregion #region Fonctionnalité : Le panier case ConsoleKey.P: // PANIER #region Creation du panier Console.Clear(); Console.WriteLine("Voici nos produit(s) : \n"); Fonctions.DisplayLimitProduct(start, TrierPar, limit); Console.WriteLine("\n Page {0} sur {1} \n\n", pageActuel, pagesTotal); Console.WriteLine("Selectionnez vos produits en choississant leur numero"); Console.WriteLine("Validez en appuyant sur V"); Console.WriteLine("Quittez en appuyant sur Q"); while (!MesTest) { Commande commande = new Commande(); Produit produit = new Produit(); message = Console.ReadLine(); if (string.IsNullOrWhiteSpace(message)) { Console.WriteLine("Veuillez renseigner un champs"); } else if (message == "Q" || message == "q") { ListeCommande.Clear(); PrixPanier = 0; goto case ConsoleKey.Escape; } else if (message == "V" || message == "v") { MesTest = true; } else if (verifieSiQueDesChiffres(message)) { int numero = 0; while (!MesTest2) { try { numero = Convert.ToInt32(message); MesTest2 = true; } catch (FormatException) { Console.WriteLine("La valeur n'est pas une valeur entiere"); } } MesTest2 = false; produit = DataAccess.GetOneProductById(numero); if (produit.Nom_Produit == "Rien") { Console.WriteLine("Votre choix ne fait pas parti de nos produits"); } else { commande.FK_Id_Produit = numero; Console.WriteLine("Combien ?"); numero = 0; while (!MesTest2) { try { numero = Convert.ToInt32(Console.ReadLine()); MesTest2 = true; } catch (FormatException) { Console.WriteLine("La valeur n'est pas une valeur entiere"); } } MesTest2 = false; PrixPanier = PrixPanier + (produit.Prix_Produit * numero); commande.Qtite_Produit = numero; ListeCommande.Add(commande); for (int i = 0; i < numero; i++) { Panier.Add(produit); } Console.WriteLine("Votre produit a été ajouter au panier !\n"); } } else { Console.WriteLine("Veuillez renseigner un champs valide"); } } MesTest = false; #endregion #region Validation du panier Fonctions.AffichePanier(ListeCommande); Console.WriteLine("Le prix de votre panier est de : " + PrixPanier + "e \n"); Console.WriteLine("Supprimer des éléments du panier [S]"); Console.WriteLine("Confirmez vos achats [O/N]"); switch (Console.ReadKey(true).Key) { case ConsoleKey.O: Facture facture = new Facture(); OptionPaiement paiement = new OptionPaiement(); IFP ifp = new IFP(); List <OptionPaiement> optionPaiements = new List <OptionPaiement>(); int numfacture = DataAccess.GetLastNumFacture(); numfacture = numfacture + 1; DateTime DateDuJour = DateTime.Today; facture.Num_facture = numfacture; facture.Date_facture = DateDuJour; facture.Montant_total = PrixPanier; facture.Fk_Id_Client = IDClientActuel; // <------------ DataAccess.AddFacture(facture); int DernierIDFacture = DataAccess.GetLastIdFacture(); for (int i = 0; i < ListeCommande.Count; i++) { ListeCommande[i].FK_Id_Facture = DernierIDFacture; DataAccess.AddCommande(ListeCommande[i]); } while (PrixPanier != 0) { optionPaiements = DataAccess.GetAllPayement(); Console.WriteLine("Voici nos differents moyens de paiements : "); for (int i = 0; i < optionPaiements.Count; i++) { Console.WriteLine("\n\t - {0} {1} \n", optionPaiements[i].Id_Paiement, optionPaiements[i].Libelle_paiement); } Console.Write("Choisissez votre moyens de paiements en indiquant le numero correspondants : "); int numeroPaiement = 0; while (!MesTest2) { try { numeroPaiement = Convert.ToInt32(Console.ReadLine()); if (numeroPaiement <= 0 || numeroPaiement > 3) { Console.WriteLine("Veuillez choisir un moyen de paiement valide"); } else { MesTest2 = true; } } catch (FormatException) { Console.WriteLine("La valeur n'est pas une valeur entiere"); } } MesTest2 = false; ifp.FK_Id_Paiement = numeroPaiement; Console.Write("Il vous reste {0}e a payé, combien souhaitez vous regler ?", PrixPanier); decimal Payer = 0; while (!MesTest2) { try { string message2 = Console.ReadLine(); message2 = message2.Replace('.', ','); Payer = Convert.ToDecimal(message2); MesTest2 = true; } catch (FormatException) { Console.WriteLine("Cette valeur n'est pas decimal"); } } MesTest2 = false; ifp.Montant_Paiement = Payer; PrixPanier = PrixPanier - Payer; ifp.FK_Id_Facture = DernierIDFacture; DataAccess.AddIFP(ifp); } break; case ConsoleKey.N: ListeCommande.Clear(); PrixPanier = 0; break; case ConsoleKey.S: Console.WriteLine("Tappez le numero correspondant au produit dans votre panier pour le supprimer"); Console.WriteLine("Confirmez vos suppression [V]\n"); while (!MesTest) { int ProduitASuppr = 0; message = Console.ReadLine(); if (string.IsNullOrWhiteSpace(message)) { Console.WriteLine("Veuillez renseigner un champs"); } else if (message == "V" || message == "v") { MesTest = true; } else if (verifieSiQueDesChiffres(message)) { ProduitASuppr = Convert.ToInt32(message); if (ProduitASuppr <= 0 || ProduitASuppr > ListeCommande.Count) { Console.WriteLine("Veuillez renseigner un nombre valide"); } else { ListeCommande.RemoveAt(ProduitASuppr - 1); Fonctions.AffichePanier(ListeCommande); } } else { Console.WriteLine("Veuillez renseigner un champs valide"); } } MesTest = false; Fonctions.AffichePanier(ListeCommande); PrixPanier = Fonctions.CalculPanier(ListeCommande); Console.WriteLine("Le prix de votre panier est de : " + PrixPanier + "e \n"); Console.WriteLine("Confirmez vos achats [O/N]"); while (!MesTest) { message = Console.ReadLine(); if (message == "o" || message == "O") { MesTest = true; goto case ConsoleKey.O; } else if (message == "n" || message == "N") { MesTest = true; goto case ConsoleKey.N; } else { MesTest = false; Console.WriteLine("Veuillez renseigner un champs valide"); } } MesTest = false; break; } goto case ConsoleKey.Escape; #endregion #endregion #region Fonctionnalité : Parcourir les differentes pages avec la flèche de gauche case ConsoleKey.LeftArrow: Fonctions.AfficherMenuAcheter(); if (start >= limit) { start = start - limit; pageActuel = pageActuel - 1; } Fonctions.DisplayLimitProduct(start, TrierPar, limit); Console.WriteLine("\n Page {0} sur {1}", pageActuel, pagesTotal); break; #endregion } } }
/// <summary> /// Afficher le menu Administrateur -> /// Créer un produit| Modifier un produit| Supprimer un produit | Afficher les produits | Afficher un produit | /// Afficher les clients | Afficher un client | Modifier un client | Supprimer un client | Déconnexion /// </summary> public static void InterfaceAdmin() { Console.Clear(); Console.Write("\t\t\t\t [MENU ADMIN]\n" + "\n\t PRODUITS:\t\t\t CLIENTS:\n" + "\n\t - [1] CREER UN PRODUIT\t\t\t - [5] AFFICHER LES CLIENTS " + "\n\t - [2] MODIFIER UN PRODUIT\t\t - [6] AFFICHER UN CLIENT " + "\n\t - [3] AFFICHER LES PRODUITS\t\t - [7] MODIFIER UN CLIENT " + "\n\t - [4] AFFICHER UN PRODUIT\t\t - [8] SUPPRIMER UN CLIENT" + "\n\t - [x] DECONNEXION\n "); switch (Console.ReadKey(true).Key) { case ConsoleKey.NumPad1: Console.Clear(); FonctionsConsole.AjouterProduit(); Console.WriteLine("APPUYER SUR UNE TOUCHE POUR RETOURNER AU MENU ADMIN"); Console.ReadKey(); Console.Clear(); InterfaceAdmin(); break; case ConsoleKey.NumPad2: //ModifierUnProduit(); Console.Clear(); Fonctions.ModifierProduit(); Console.WriteLine("APPUYER SUR UNE TOUCHE POUR RETOURNER AU MENU ADMIN"); Console.ReadKey(); Console.Clear(); InterfaceAdmin(); break; case ConsoleKey.NumPad3: //AfficherLesProduits(); Console.Clear(); FonctionsConsole.AfficherLesProduits(); Console.WriteLine("APPUYER SUR UNE TOUCHE POUR RETOURNER AU MENU ADMIN"); Console.ReadKey(); Console.Clear(); InterfaceAdmin(); break; case ConsoleKey.NumPad4: //AfficherUnProduit(); Console.Clear(); AfficherUnProduit(); Console.WriteLine("APPUYER SUR UNE TOUCHE POUR RETOURNER AU MENU ADMIN"); Console.ReadKey(); Console.Clear(); InterfaceAdmin(); break; case ConsoleKey.NumPad5: //Affiche tout les clients Console.Clear(); afficheToutLesClients(); Console.WriteLine("APPUYER SUR UNE TOUCHE POUR RETOURNER AU MENU ADMIN"); Console.ReadKey(); Console.Clear(); InterfaceAdmin(); break; case ConsoleKey.NumPad6: //Affiche un Client Console.Clear(); Console.WriteLine("Renseigner l'email du client à afficher: "); string email = Console.ReadLine(); afficheUnClient(email); Console.WriteLine("APPUYER SUR UNE TOUCHE POUR RETOURNER AU MENU ADMIN"); Console.ReadKey(); Console.Clear(); InterfaceAdmin(); break; case ConsoleKey.NumPad7: //Modifie un client Console.Clear(); ModifierUnClient(); Console.WriteLine("APPUYER SUR UNE TOUCHE POUR RETOURNER AU MENU ADMIN"); Console.ReadKey(); Console.Clear(); InterfaceAdmin(); break; case ConsoleKey.NumPad8: //Supprime un Client Console.Clear(); Console.WriteLine("Renseigner l'email du client à supprimer (ATTENTION y compris Factures et Commandes): "); string emailsuppr = Console.ReadLine(); FonctionsConsole.SupprimeClient(emailsuppr); Console.Clear(); InterfaceAdmin(); break; case ConsoleKey.X: Console.Clear(); Console.WriteLine("Vous allez être déconnecté de votre compte client, voulez-vous continuer ? (O/N)\n"); switch (Console.ReadKey(true).Key) { case ConsoleKey.N: InterfaceClient(); break; case ConsoleKey.O: Console.Clear(); return; } return; } }
//-------------------------------------------------// // [PARTIE JEREMY] // //-------------------------------------------------// //Produits #region AfficherLesProduits /// <summary> /// Affiche les differents produits /// </summary> public static void AfficherLesProduits() { Console.Clear(); Fonctions.DisplayProduct(); }