Advertisement
desislava_topuzakova

Untitled

May 21st, 2023
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.27 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace RegularExam
  7. {
  8. internal class Perfumery
  9. {
  10. private string name;
  11. private List<Perfume> perfumes;
  12.  
  13. public Perfumery (string name)
  14. {
  15. this.name = name;
  16. this.perfumes = new List<Perfume>();
  17. }
  18.  
  19. public string Name
  20. {
  21. get { return name; }
  22. set
  23. {
  24. if (value.Length < 6)
  25. {
  26. throw new ArgumentException("Invalid perfumery name!");
  27. }
  28. name = value;
  29. }
  30. }
  31.  
  32. public void AddPerfume(Perfume perfume)
  33. {
  34. this.perfumes.Add(perfume);
  35. }
  36.  
  37. public bool SellPerfume(Perfume perfume)
  38. {
  39. foreach (Perfume checkPerfume in perfumes)
  40. {
  41. if (checkPerfume.Brand == perfume.Brand && checkPerfume.Price == perfume.Price)
  42. {
  43. this.perfumes.Remove(checkPerfume);
  44. return true;
  45. }
  46. }
  47. return false;
  48. }
  49.  
  50. public double CalculateTotalPrice()
  51. {
  52. return this.perfumes.Select(e => e.Price).Sum();
  53. }
  54.  
  55. public Perfume GetPerfumeWithHighestPrice()
  56. {
  57. return perfumes.OrderByDescending(e => e.Price).First();
  58. }
  59.  
  60. public Perfume GetPerfumeWithLowestPrice()
  61. {
  62. return perfumes.OrderBy(e => e.Price).First();
  63. }
  64.  
  65. public void RenamePerfumery(string newName)
  66. {
  67. Name = newName;
  68. }
  69.  
  70. public void SellAllPerfumes()
  71. {
  72. this.perfumes.Clear();
  73. }
  74.  
  75. public override string ToString()
  76. {
  77. var sb = new StringBuilder();
  78.  
  79. if (perfumes.Count() > 0)
  80. {
  81. sb.Append($"Perfumery {name} has {perfumes.Count} perfume/s:\n");
  82. sb.Append(string.Join("\n", perfumes));
  83. }
  84. else
  85. {
  86. sb.Append($"Perfumery {name} has no available perfumes.");
  87.  
  88. }
  89. return sb.ToString();
  90. }
  91.  
  92. }
  93. }
  94.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement