mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 14:31:28 +00:00
31 lines
790 B
C#
31 lines
790 B
C#
using System.Data;
|
|
|
|
namespace GildedRoseKata;
|
|
|
|
public abstract class DailyUpdater
|
|
{
|
|
public void DailyUpdate(Item item)
|
|
{
|
|
UpdateSellIn(item);
|
|
UpdateQuality(item);
|
|
if (IsExpired(item))
|
|
{
|
|
UpdateQuality(item);
|
|
}
|
|
}
|
|
|
|
public abstract void UpdateQuality(Item item);
|
|
public virtual void UpdateSellIn(Item item) => item.SellIn -= 1;
|
|
|
|
protected static bool IsExpired(Item item) => item.SellIn < 0;
|
|
|
|
protected static void IncreaseQuality(Item item, int byValue = 1)
|
|
{
|
|
item.Quality = int.Min(item.Quality + byValue, ItemQuality.MaxQuality);
|
|
}
|
|
|
|
protected static void DecreaseQuality(Item item, int byValue = 1)
|
|
{
|
|
item.Quality = int.Max(item.Quality - byValue, ItemQuality.MinQuality);
|
|
}
|
|
} |