Exemple #1
0
        static void Main(string[] args)
        {
            var food           = new Food(10);
            var alcoholicDrink = new AlcoholicDrink(5);
            var cigarette      = new Cigarette(5);

            food.AddProduct(food);
            food.AddProduct(alcoholicDrink);
            food.AddProduct(cigarette);

            var totalWithBrazilTaxes = food.GetPriceWithTaxes(new BrazilTaxVisitor()) + alcoholicDrink.GetPriceWithTaxes(new BrazilTaxVisitor()) + cigarette.GetPriceWithTaxes(new BrazilTaxVisitor());
            var totalWithUsTaxes     = food.GetPriceWithTaxes(new UsTaxVisitor()) + alcoholicDrink.GetPriceWithTaxes(new UsTaxVisitor()) + cigarette.GetPriceWithTaxes(new UsTaxVisitor());

            Console.WriteLine($"O valor total em reais é: {food.TotalPrice()}");
            Console.WriteLine($"O valor com impostos no Brasil: {totalWithBrazilTaxes}");
            Console.WriteLine($"O valor com impostos no Us: {totalWithUsTaxes}");
        }
 public decimal CalculateTaxesForAlcoholicDrink(AlcoholicDrink alcoholicDrink)
 {
     return(alcoholicDrink.GetPrice() + (alcoholicDrink.GetPrice() * 0.5m));
 }