public decimal CalculerPrixPanier(Panier panier)
        {
            if (panier == null)
            {
                throw new PanierNullException();
            }

            decimal remise    = 0;
            decimal prixTotal = 0;

            foreach (var promotion in _listePromotions)
            {
                remise += promotion.CalculerRemise(panier, PrixFruits);
            }

            foreach (var fruits in panier.Contenu)
            {
                prixTotal += fruits.Value * PrixFruits[fruits.Key];
            }

            if (!string.IsNullOrEmpty(paysDeLivraison))
            {
                prixTotal += PrixLivraisons[paysDeLivraison];
            }

            return(prixTotal - remise);
        }
Beispiel #2
0
        public void GivenJAiUnPanierDe14Euros()
        {
            Panier = new Panier();

            Panier.AjouterFruits(TypeDeFruit.Poire, 3);
            Panier.AjouterFruits(TypeDeFruit.Pomme, 2);
            Panier.AjouterFruits(TypeDeFruit.Banane, 2);
        }
Beispiel #3
0
        public decimal CalculerRemise(Panier panier, Dictionary <TypeDeFruit, decimal> PrixFruits)
        {
            decimal nombreDeFoisPromoAppliquee = panier.Contenu[TypeDeFruit.Poire] / NbPoireAchetee;

            var nombrePoireOfferte = NbPoireOfferte * (int)Math.Floor(nombreDeFoisPromoAppliquee);
            var remise             = PrixFruits[TypeDeFruit.Poire] * nombrePoireOfferte;

            return(remise);
        }
Beispiel #4
0
        public decimal CalculerRemise(Panier panier, Dictionary <TypeDeFruit, decimal> prixFruits)
        {
            var nbMandarinePanier = panier.Contenu[TypeDeFruit.Mandarine];

            if (nbMandarinePanier > _nbMandarineMinimum)
            {
                return(nbMandarinePanier * prixFruits[TypeDeFruit.Mandarine] * _pourcentage);
            }

            return(0);
        }
Beispiel #5
0
        public decimal CalculerRemise(Panier panier, Dictionary <TypeDeFruit, decimal> prixFruits)
        {
            _prixFruits = prixFruits;
            if (panier.Contenu.Sum(f => f.Value) >= 10)
            {
                var typeFruit = RecupererFruitLePlusCher(panier.Contenu);
                return(_prixFruits[typeFruit]);
            }

            return(0);
        }
Beispiel #6
0
 public void GivenJAiUneCaisseEnregistreuse()
 {
     Caisse = new CaisseEnregistreuse();
     Panier = new Panier();
 }