mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 22:41:30 +00:00
79 lines
2.6 KiB
C#
79 lines
2.6 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
|
|
namespace csharp
|
|
{
|
|
public class GildedRose
|
|
{
|
|
IList<Item> Items;
|
|
public const int sulfurasMaxQuality = 80;
|
|
public const int itemMaxQuality = 50;
|
|
public const int qualityScore = 50;
|
|
public const int daysToDoublePassesQuantity = 11;
|
|
public const int daysToTriplePassesQuantity = 6;
|
|
public GildedRose(IList<Item> Items)
|
|
{
|
|
this.Items = Items;
|
|
}
|
|
|
|
public void UpdateQuality()
|
|
{
|
|
for (var i = 0; i < Items.Count; i++)
|
|
{
|
|
// Updating Quality of items
|
|
|
|
if(Items[i].Name == "Aged Brie" && Items[i].Quality < itemMaxQuality)
|
|
{
|
|
Items[i].Quality = Items[i].Quality + 1;
|
|
}
|
|
else if(Items[i].Name == "Backstage passes to a TAFKAL80ETC concert" && Items[i].Quality < itemMaxQuality)
|
|
{
|
|
|
|
if (Items[i].SellIn < daysToTriplePassesQuantity)
|
|
{
|
|
Items[i].Quality = Items[i].Quality + 2;
|
|
}
|
|
|
|
else if (Items[i].SellIn < daysToDoublePassesQuantity)
|
|
{
|
|
Items[i].Quality = Items[i].Quality + 1;
|
|
}
|
|
|
|
}
|
|
else if(Items[i].Name == "Conjured Mana Cake" && Items[i].Quality > 0)
|
|
{
|
|
Items[i].Quality = Items[i].Quality - 2;
|
|
}
|
|
else if (Items[i].Quality > 0 && Items[i].Name != "Sulfuras, Hand of Ragnaros")
|
|
{
|
|
Items[i].Quality = Items[i].Quality - 1;
|
|
}
|
|
|
|
|
|
// Selling Date
|
|
if (Items[i].Name != "Sulfuras, Hand of Ragnaros")
|
|
{
|
|
Items[i].SellIn = Items[i].SellIn - 1;
|
|
}
|
|
|
|
// Selling Date has passed
|
|
if (Items[i].SellIn < 0)
|
|
{
|
|
if(Items[i].Name == "Backstage passes to a TAFKAL80ETC concert")
|
|
{
|
|
Items[i].Quality = 0;
|
|
}
|
|
else if (Items[i].Name == "Aged Brie" && Items[i].Quality < itemMaxQuality)
|
|
{
|
|
Items[i].Quality = Items[i].Quality + 1;
|
|
}
|
|
else if(Items[i].Quality > 0 && Items[i].Name != "Sulfuras, Hand of Ragnaros")
|
|
{
|
|
Items[i].Quality = Items[i].Quality - 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|