Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. class MainClass
  5. {
  6. public static void Main (string[] args)
  7. {
  8. Console.WriteLine ("Hello World");
  9. }
  10.  
  11. public abstract class Order
  12. {
  13. public abstract List<Item> OrderItems { get; set; }
  14. public abstract decimal CaclulateOrderTotal();
  15. }
  16.  
  17. public class Item
  18. {
  19. public int Quantity {get; set;}
  20. }
  21.  
  22. public class ItemGram : Order
  23. {
  24. public override List<Item> OrderItems { get; set; }
  25. public override decimal CaclulateOrderTotal()
  26. {
  27. decimal total = 0;
  28. foreach (var item in OrderItems)
  29. total += item.Quantity * 6m / 1000;
  30.  
  31. return total;
  32. }
  33. }
  34.  
  35. public class ItemBottle : Order
  36. {
  37. public override List<Item> OrderItems { get; set; }
  38. public override decimal CaclulateOrderTotal()
  39. {
  40. decimal total = 0;
  41. foreach (var item in OrderItems)
  42. total += item.Quantity * 3m;
  43.  
  44. return total;
  45. }
  46. }
  47.  
  48. public class ItemBag : Order
  49. {
  50. public override List<Item> OrderItems { get; set; }
  51. public override decimal CaclulateOrderTotal()
  52. {
  53. decimal total = 0;
  54. foreach (var item in OrderItems)
  55. total += GetTotal(item);
  56.  
  57. return total;
  58. }
  59.  
  60. private decimal GetTotal(Item item)
  61. {
  62. var total = item.Quantity * .2m;
  63. int setsOfFour = item.Quantity / 4;
  64. total -= setsOfFour * .15m; //discount on groups of 4 items
  65.  
  66. return total;
  67. }
  68. }
  69.  
  70. public class Calculator
  71. {
  72. public decimal CalculateOrder(Order order)
  73. {
  74. return order.CaclulateOrderTotal();
  75. }
  76. }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement