Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace RegularExam
- {
- internal class Perfumery
- {
- private string name;
- private List<Perfume> perfumes;
- public Perfumery (string name)
- {
- Name = name;
- this.perfumes = new List<Perfume>();
- }
- public string Name
- {
- get { return name; }
- set
- {
- if (value.Length < 6)
- {
- throw new ArgumentException("Invalid perfumery name!");
- }
- name = value;
- }
- }
- public void AddPerfume(Perfume perfume)
- {
- this.perfumes.Add(perfume);
- }
- public bool SellPerfume(Perfume perfume)
- {
- foreach (Perfume checkPerfume in perfumes)
- {
- if (checkPerfume.Brand == perfume.Brand && checkPerfume.Price == perfume.Price)
- {
- this.perfumes.Remove(checkPerfume);
- return true;
- }
- }
- return false;
- }
- public double CalculateTotalPrice()
- {
- return this.perfumes.Select(e => e.Price).Sum();
- }
- public Perfume GetPerfumeWithHighestPrice()
- {
- return perfumes.OrderByDescending(e => e.Price).First();
- }
- public Perfume GetPerfumeWithLowestPrice()
- {
- return perfumes.OrderBy(e => e.Price).First();
- }
- public void RenamePerfumery(string newName)
- {
- Name = newName;
- }
- public void SellAllPerfumes()
- {
- this.perfumes.Clear();
- }
- public override string ToString()
- {
- var sb = new StringBuilder();
- if (perfumes.Count() > 0)
- {
- sb.Append($"Perfumery {name} has {perfumes.Count} perfume/s:\n");
- sb.Append(string.Join("\n", perfumes));
- }
- else
- {
- sb.Append($"Perfumery {name} has no available perfumes.");
- }
- return sb.ToString();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement