Example #1
0
 public ShoppingCart(IDeliveryCostCalculator deliveryCostCalculator)
 {
     DeliveryCostCalculator = deliveryCostCalculator;
     Campaigns        = new List <Campaign>();
     Products         = new Dictionary <Product, int>();
     _campaignManager = new CampaignManager();
 }
Example #2
0
        public Cart(IDeliveryCostCalculator deliveryCostCalculator)
        {
            Id = Guid.NewGuid();

            _deliveryCostCalculator = deliveryCostCalculator;
            _items = new List <CartItem>();
        }
Example #3
0
        static void Main(string[] args)
        {
            ServiceProvider serviceProvider = ResolveDependencies();

            ICart cart = serviceProvider.GetService <ICart>();
            IDeliveryCostCalculator deliveryCostCalculator = serviceProvider.GetService <IDeliveryCostCalculator>();

            Run(cart, deliveryCostCalculator);

            Console.ReadLine();
        }
Example #4
0
 public OrderCalculator(
     IDeliveryCostCalculator deliveryCostCalculator,
     IFeesCalculator feesCalculator,
     IOrderTotalCalculator orderTotalCalculator,
     ICampaignCalculator campaignCalculator,
     IVatCalculator vatCalculator,
     IOrderGrandTotalCalculator orderGrandTotalCalculator
     )
 {
     this.deliveryCostCalculator    = deliveryCostCalculator;
     this.feesCalculator            = feesCalculator;
     this.orderTotalCalculator      = orderTotalCalculator;
     this.campaignCalculator        = campaignCalculator;
     this.vatCalculator             = vatCalculator;
     this.orderGrandTotalCalculator = orderGrandTotalCalculator;
 }
Example #5
0
        static void Run(ICart cart, IDeliveryCostCalculator deliveryCostCalculator)
        {
            ICategory categoryConsumerElectronics = new Category("Consumer Electronics");
            IProduct  productAppleWatch           = new Product(categoryConsumerElectronics, "Apple Watch", 2000.0);
            IProduct  productAppleMacbookPro      = new Product(categoryConsumerElectronics, "Apple Macbook Pro", 10000.0);

            ICategory categoryToysAndGames = new Category("Toys & Games");
            IProduct  productLego          = new Product(categoryToysAndGames, "Lego Classic Pack", 100.0);

            cart.Add(productAppleWatch, 2);
            cart.Add(productAppleMacbookPro, 1);
            cart.Add(productLego, 10);

            ICollection <ICampaign> campaigns = new Collection <ICampaign>();
            ICollection <ICoupon>   coupons   = new Collection <ICoupon>();

            IRateCampaign   inapplicableRateCampaign = new RateCampaign(categoryToysAndGames, "80% discount on Toys & Games category", .5, true, true, 50000.0, 20);
            IAmountCampaign lowAmountCampaign        = new AmountCampaign(categoryConsumerElectronics, "100 TL discount on Toys & Games category", 100, false, false, 0.0, 0);
            IAmountCampaign bestAmountCampaign       = new AmountCampaign(categoryConsumerElectronics, "1400 TL discount on Toys & Games category", 1400, false, true, 0.0, 3);
            IAmountCoupon   inapplicableAmountCoupon = new AmountCoupon(5000, "5000 TL discount coupon", true, true, 50000, 50);
            IRateCoupon     lowRateCoupon            = new RateCoupon(.1, "10% discount coupon", false, false, 0.0, 0);
            IRateCoupon     bestRateCoupon           = new RateCoupon(.5, "50% discount coupon", true, true, 10000, 13);

            campaigns.Add(inapplicableRateCampaign);
            campaigns.Add(lowAmountCampaign);
            campaigns.Add(bestAmountCampaign);
            coupons.Add(inapplicableAmountCoupon);
            coupons.Add(lowRateCoupon);
            coupons.Add(bestRateCoupon);

            cart.ApplyDiscounts(campaigns, coupons);

            cart.DeliveryCost = deliveryCostCalculator.Calculate(cart);

            var response = cart.Print();

            Console.Write(response);
        }
Example #6
0
 public ShoppingCart(IDeliveryCostCalculator deliveryCostCalculator)
 {
     CartItems = new Dictionary <string, ShoppingCartItem>();
     DeliveryCostCalculator = deliveryCostCalculator;
 }
Example #7
0
 public ShoppingCart(IDeliveryCostCalculator deliveryCostCalculator)
 {
     ProductDict             = new Dictionary <Product, int>();
     _deliveryCostCalculator = deliveryCostCalculator;
     discountList            = new List <Discount>();
 }
Example #8
0
 public ShoppingCart(IDeliveryCostCalculator deliveryCostCalculator)
 {
     _deliveryCostCalculator = deliveryCostCalculator;
     _products  = new Dictionary <Product.Product, int>();
     _campaigns = new List <ICampaign>();
 }
Example #9
0
 public LargeParcel(IDeliveryCostCalculator calculator, ParcelDimension dimension) : base(calculator, dimension)
 {
 }
 public Order(string city, double orderCost, IDeliveryCostCalculator deliveryCostCalculator)
 {
     City      = city;
     OrderCost = orderCost;
     _deliveryCostCalculator = deliveryCostCalculator;
 }
Example #11
0
 public ShoppingCart(IDeliveryCostCalculator deliveryCostCalculator)
 {
     DeliveryCostCalculator = deliveryCostCalculator;
 }
Example #12
0
 public ShoppingCart(IDeliveryCostCalculator deliveryCostCalculator)
 {
     _deliveryCostCalculator = deliveryCostCalculator;
     Products = new Dictionary <string, Product>();
 }
Example #13
0
 public ShoppingCart(IDeliveryCostCalculator deliveryCostCalculator)
 {
     _deliveryCostCalculator = deliveryCostCalculator;
     ShoppingCartItems       = new Dictionary <Product, int>();
     Campaigns = new List <Campaign>();
 }
Example #14
0
 public Parcel(IDeliveryCostCalculator calculator, ParcelDimension dimension)
 {
     _calculator = calculator;
     Dimension   = dimension;
 }
Example #15
0
 public ShoppingCart(IDeliveryCostCalculator deliveryCostCalculator)
 {
     ProductQuantities      = new Dictionary <Product, int>();
     Campaigns              = new List <Campaign>();
     DeliveryCostCalculator = deliveryCostCalculator;
 }
 public Cart(IDeliveryCostCalculator calculator)
 {
     this.calculator = calculator;
 }
Example #17
0
 public DeliveryCostCalculationService(IDeliveryCostCalculator deliveryCostCalculator)
 {
     _deliveryCostCalculator = deliveryCostCalculator;
 }
 public ShoppingCartService(IDeliveryCostCalculator deliveryCostCalculator)
 {
     this.Campaigns = new List <Campaign>();
     this.Carts     = new List <Cart>();
     this.deliveryCostCalculator = deliveryCostCalculator;
 }