Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- class MainClass
- {
- public static void Main (string[] args)
- {
- Console.WriteLine ("Hello World");
- }
- public abstract class Order
- {
- public abstract List<Item> OrderItems { get; set; }
- public abstract decimal CaclulateOrderTotal();
- }
- public class Item
- {
- public int Quantity {get; set;}
- }
- public class ItemGram : Order
- {
- public override List<Item> OrderItems { get; set; }
- public override decimal CaclulateOrderTotal()
- {
- decimal total = 0;
- foreach (var item in OrderItems)
- total += item.Quantity * 6m / 1000;
- return total;
- }
- }
- public class ItemBottle : Order
- {
- public override List<Item> OrderItems { get; set; }
- public override decimal CaclulateOrderTotal()
- {
- decimal total = 0;
- foreach (var item in OrderItems)
- total += item.Quantity * 3m;
- return total;
- }
- }
- public class ItemBag : Order
- {
- public override List<Item> OrderItems { get; set; }
- public override decimal CaclulateOrderTotal()
- {
- decimal total = 0;
- foreach (var item in OrderItems)
- total += GetTotal(item);
- return total;
- }
- private decimal GetTotal(Item item)
- {
- var total = item.Quantity * .2m;
- int setsOfFour = item.Quantity / 4;
- total -= setsOfFour * .15m; //discount on groups of 4 items
- return total;
- }
- }
- public class Calculator
- {
- public decimal CalculateOrder(Order order)
- {
- return order.CaclulateOrderTotal();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement