GildedRose-Refactoring-Kata/csharp/Item.cs

50 lines
1.1 KiB
C#

using System.Runtime.CompilerServices;
namespace csharp
{
public class Item : IItem
{
public string Name { get; }
public int SellIn { get; set; }
public int Quality { get; set; }
internal ItemType TypeOfItem;
public Item(string name, int sellIn, int quality)
{
Name = name;
SellIn = sellIn;
Quality = quality;
TypeOfItem = ItemType.Normal;
}
protected virtual void QualityModifier()
{
if (this.SellIn >= 0) SetQuality(1);
else SetQuality(2);
}
protected virtual void SetQuality(int qualityModifier)
{
if (this.Quality - qualityModifier < 0) this.Quality = 0;
else this.Quality -= qualityModifier;
}
public override string ToString()
{
return this.Name + ", " + this.SellIn + ", " + this.Quality;
}
public void PassingDay()
{
this.SellIn--;
QualityModifier();
}
public int GetQuality()
{
return this.Quality;
}
}
}