From b5f5867081e6db5821af53384802b71d70e3389c Mon Sep 17 00:00:00 2001 From: Sarah Ashri Date: Wed, 13 Mar 2024 11:40:26 +1000 Subject: [PATCH] DailyItemUpdate: seperate handling for different item types --- csharpcore/GildedRose/GildedRose.cs | 30 ++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/csharpcore/GildedRose/GildedRose.cs b/csharpcore/GildedRose/GildedRose.cs index 1ad95035..0a25ae91 100644 --- a/csharpcore/GildedRose/GildedRose.cs +++ b/csharpcore/GildedRose/GildedRose.cs @@ -26,6 +26,10 @@ public class GildedRose private static bool IsBackstagePassesItem(Item item) => item.Name.ToLower().Contains("backstage passes"); private static bool IsBetterWithAgeItem(Item item) => item.Name.ToLower().Equals("aged brie"); + + private static bool IsRegularItem(Item item) => (!IsLegendaryItem(item) && + !IsBackstagePassesItem(item) && + !IsBetterWithAgeItem(item)); @@ -34,14 +38,15 @@ public class GildedRose { if (IsLegendaryItem(item)) return; - if (!IsBetterWithAgeItem(item) && !IsBackstagePassesItem(item)) + if (IsRegularItem(item)) { if (item.Quality > MinQuality) { item.Quality = item.Quality - 1; } } - else + + if(IsBetterWithAgeItem(item) || IsBackstagePassesItem(item)) { if (item.Quality < MaxQuality) { @@ -72,21 +77,20 @@ public class GildedRose if (item.SellIn < 0) { - if (!IsBetterWithAgeItem(item)) + if (IsRegularItem(item)) { - if (!IsBackstagePassesItem(item)) + if (item.Quality > MinQuality) { - if (item.Quality > MinQuality) - { - item.Quality = item.Quality - 1; - } - } - else - { - item.Quality = item.Quality - item.Quality; + item.Quality = item.Quality - 1; } } - else + + if(IsBackstagePassesItem(item)) + { + item.Quality = item.Quality - item.Quality; + } + + if(IsBetterWithAgeItem(item)) { if (item.Quality < MaxQuality) {