mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-16 23:11:28 +00:00
50 lines
1.1 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|