alexbancheva

Rabbit_class Cage

Jun 18th, 2020
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.26 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace Rabbits
  7. {
  8.     public class Cage
  9.     {
  10.         private readonly List<Rabbit> data;
  11.  
  12.         private Cage()
  13.         {
  14.             this.data = new List<Rabbit>();
  15.         }
  16.  
  17.         public Cage(string name, int capacity)
  18.             :this()
  19.         {
  20.             this.Name = name;
  21.             this.Capacity = capacity;
  22.         }
  23.  
  24.         public string Name { get; set; }
  25.  
  26.         public int Capacity { get; set; }
  27.  
  28.         public int Count
  29.         {
  30.             get
  31.             {
  32.                 return this.data.Count();
  33.             }
  34.         }
  35.  
  36.         public void Add(Rabbit rabbit)
  37.         {
  38.             if (this.data.Count +1 <= this.Capacity)
  39.             {
  40.                 this.data.Add(rabbit);
  41.             }
  42.         }
  43.  
  44.         public bool RemoveRabbit(string name)
  45.         {
  46.             Rabbit rabbit = this.data
  47.                 .FirstOrDefault(r => r.Name == name);
  48.  
  49.             if (rabbit != null)
  50.             {
  51.                 this.data.Remove(rabbit);
  52.  
  53.                 return true;
  54.             }
  55.  
  56.             return false;
  57.         }
  58.  
  59.         public void RemoveSpecies(string species)
  60.         {
  61.             this.data.RemoveAll(r => r.Species == species);
  62.         }
  63.  
  64.         public Rabbit SellRabbit(string name)
  65.         {
  66.             Rabbit rabbit = this.data.FirstOrDefault(r => r.Name == name);
  67.  
  68.             if (rabbit != null)
  69.             {
  70.                 rabbit.Available = false;
  71.             }
  72.             return rabbit;
  73.         }
  74.  
  75.         public Rabbit[] SellRabbitsBySpecies(string species)
  76.         {
  77.             Rabbit[] rabbits = this.data.Where(r => r.Species == species).ToArray();
  78.  
  79.             foreach (var rabbit in rabbits)
  80.             {
  81.                 rabbit.Available = false;
  82.             }
  83.             return rabbits;
  84.         }
  85.  
  86.         public string Report()
  87.         {
  88.             StringBuilder sb = new StringBuilder();
  89.  
  90.             sb.AppendLine($"Rabbits available at {this.Name}:");
  91.  
  92.             foreach (var rabbit in data.Where(r => r.Available))
  93.             {
  94.                 sb.AppendLine(rabbit.ToString());
  95.             }
  96.  
  97.             return sb.ToString();
  98.         }
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment