AleksandarKostadinov

07.AndreyAndBilliardObjects

Feb 10th, 2017
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.33 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace _07.AndreyAndBilliardObjects_and_Classes___Exercises
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. int countProd = int.Parse(Console.ReadLine());
  14. var Products = new Dictionary<string, decimal>();
  15. var listOfCustomers = new List<Customer>();
  16. for (int i = 0; i < countProd; i++)
  17. {
  18. var inputProd = Console.ReadLine().Split('-');
  19. if (!Products.ContainsKey(inputProd[0]))
  20. {
  21. Products.Add(inputProd[0], decimal.Parse(inputProd[1]));
  22. }
  23. else
  24. {
  25. Products[inputProd[0]] = decimal.Parse(inputProd[1]);
  26. }
  27. }
  28.  
  29. var inputCustomer = Console.ReadLine().Split('-');
  30.  
  31. while (inputCustomer[0] != "end of clients")
  32. {
  33. string currClient = inputCustomer[0];
  34. string[] currProducts = inputCustomer[1].Split(',');
  35. Customer currCustomer = new Customer
  36. {
  37. Name = currClient,
  38. Product = new Dictionary<string, int>(),
  39.  
  40. };
  41. currCustomer.Product.Add(currProducts[0], int.Parse(currProducts[1]));
  42.  
  43. if (!Products.ContainsKey(currProducts[0]))
  44. {
  45. inputCustomer = Console.ReadLine().Split('-');
  46. continue;
  47. }
  48.  
  49. if (listOfCustomers.Any(n => n.Name == currClient))
  50. {
  51. Customer existingCustomer = listOfCustomers.First(k => k.Name == currClient);
  52.  
  53. if (!existingCustomer.Product.ContainsKey(currProducts[0]))
  54. {
  55. existingCustomer.Product[currProducts[0]] = 0;
  56. }
  57.  
  58. existingCustomer.Product[currProducts[0]] += int.Parse(currProducts[1]);
  59. }
  60. else
  61. {
  62. listOfCustomers.Add(currCustomer);
  63. }
  64. inputCustomer = Console.ReadLine().Split('-');
  65. }
  66.  
  67. foreach (var cust in listOfCustomers)
  68. {
  69. foreach (var item in cust.Product)
  70. {
  71. foreach (var itemProd in Products)
  72. {
  73. if (itemProd.Key == item.Key)
  74. {
  75. cust.Bill += item.Value * itemProd.Value;
  76. }
  77. }
  78. }
  79. }
  80.  
  81. decimal totalBill = 0;
  82.  
  83. var sortedList = listOfCustomers
  84. .OrderBy(a => a.Name);
  85. foreach (var cust in sortedList)
  86. {
  87. Console.WriteLine(cust.Name);
  88. foreach (var item in cust.Product)
  89. {
  90. Console.WriteLine($"-- {item.Key} - {item.Value}");
  91. }
  92. Console.WriteLine($"Bill: {cust.Bill:f2}");
  93. totalBill += cust.Bill;
  94. }
  95. Console.WriteLine($"Total bill: {totalBill:f2}");
  96.  
  97. }
  98. }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment