static void Main(string[] args) { List <Pays> ListePays = new List <Pays>(); ListePays.Add(new Pays { Localisation = EnumLocalisation.France, Nom = "France" }); ListePays.Add(new Pays { Localisation = EnumLocalisation.Europe, Nom = "Italie" }); ListePays.Add(new Pays { Localisation = EnumLocalisation.Autre, Nom = "USA" }); Commande commande = new Commande() { Facturation = new Facturation { CodePostal = 68000, NomDeRue = "Rue des mésanges", NumeroDeRue = 2, Pays = ListePays.FirstOrDefault(p => p.Nom == "France"), Ville = "Colmar", Personne = new Personne { Nom = "PIERRE", Prenom = "Paul" } }, Livraison = new Livraison { CodePostal = 68000, NomDeRue = "Rue des mésanges", NumeroDeRue = 2, Pays = ListePays.FirstOrDefault(p => p.Nom == "USA"), Ville = "Colmar", Personne = new Personne { Nom = "JAQUES", Prenom = "Henry" } } }; Random random = new Random(); commande.ListeArticle.Add(new Article { Nom = "Article 1", PrixHT = -1 }); commande.ListeArticle.Add(new Article { Nom = "Article 2", PrixHT = Math.Round(random.NextDouble() * 40, 2) }); commande.ListeArticle.Add(new Article { Nom = "Article 3", PrixHT = Math.Round(random.NextDouble() * 40, 2) }); commande.ListeArticle.Add(new Article { Nom = "Article 4", PrixHT = Math.Round(random.NextDouble() * 40, 2) }); commande.ListeArticle.Add(new Article { Nom = "Article 5", PrixHT = Math.Round(random.NextDouble() * 40, 2) }); commande.ListeArticle.Add(new Article { Nom = "Article 6", PrixHT = Math.Round(random.NextDouble() * 40, 2) }); commande.ListeArticle.Add(new Article { Nom = "Article 7", PrixHT = Math.Round(random.NextDouble() * 40, 2) }); commande.ListeArticle.Add(new Article { Nom = "Article 8", PrixHT = Math.Round(random.NextDouble() * 40, 2) }); commande.ListeArticle.Add(new Article { Nom = "Article 9", PrixHT = Math.Round(random.NextDouble() * 40, 2) }); commande.ListeArticle.Add(new Article { Nom = "Article 10", PrixHT = Math.Round(random.NextDouble() * 40, 2) }); List <Article> ListeArticleCalculable = commande.ListeArticle.Where(ls => ls.PrixHT > 0).ToList(); try { double prixMoyen = Math.Round(ListeArticleCalculable.Select(ls => ls.PrixHT).Average(), 2); double prixTotalHT = ListeArticleCalculable.Sum(ls => ls.PrixHT); double prixTotalTTC = commande.SommeTTC(prixTotalHT); int livraison = commande.PrixLivraison(commande); prixTotalTTC += livraison; if (prixTotalHT < 0) { Console.WriteLine("Montant impossible négatif"); Console.ReadKey(); } else { CultureInfo.CurrentCulture = new CultureInfo("fr-FR", false); Console.OutputEncoding = Encoding.UTF8; commande.ListeArticle.ForEach(a => Console.WriteLine(a.Detail(a))); Console.WriteLine("Quel est votre sexe ? 1-Homme, 2-Femme"); commande.Livraison.Personne.EnumSexe = (EnumSexe)Int32.Parse(Console.ReadLine()); commande.Facturation.Personne.EnumSexe = commande.Livraison.Personne.EnumSexe; Console.WriteLine("___________________"); Console.WriteLine("Prix total HT : {0:C2}", prixTotalHT); Console.WriteLine("Prix total TTC : {0:C2}", prixTotalTTC); Console.WriteLine("Dont livraison : {0:C2}", livraison); Console.WriteLine("Prix moyen d'un article : {0:C2}", prixMoyen); Console.WriteLine("Date de création : {0}", commande.Date); Console.WriteLine("___________________"); Console.WriteLine("Adresse de Facturation : {0}", commande.Livraison.Detail(commande.Livraison.Personne.EnumSexe, commande.Livraison)); Console.WriteLine("Adresse de livraison : {0}", commande.Facturation.Detail(commande.Facturation.Personne.EnumSexe, commande.Facturation)); Console.WriteLine("Date de livraison estimé : {0}", commande.Livraison.DateLivraison.ToShortDateString()); Console.ReadKey(); } } catch (EmptyArticleException e) { e.Exception(ListeArticleCalculable, commande.ListeArticle); Console.WriteLine("Impossible de passer une commande qui ne contient aucun article"); Console.ReadKey(); throw; } }