Example #1
0
 /// <summary>
 /// Runs the algorithm
 /// </summary>
 /// <param name="item">The item to be maintained</param>
 /// <param name="qualityMaintainer">The item to be maintained</param>
 public void Run(IInventoryItem item, IQualityMaintenance qualityMaintainer)
 {
     if (qualityMaintainer.Quality > _threshold)
     {
         qualityMaintainer.Quality = _threshold;
     }
 }
 /// <summary>
 /// Runs the algorithm
 /// </summary>
 /// <param name="item">The item to be maintained</param>
 /// <param name="qualityMaintainer">The item to be maintained</param>
 public void Run(IInventoryItem item, IQualityMaintenance qualityMaintainer)
 {
     if (qualityMaintainer.Quality < 0)
     {
         qualityMaintainer.Quality = 0;
     }
 }
Example #3
0
 /// <summary>
 /// Runs the algorithm
 /// </summary>
 /// <param name="item">The item to be maintained</param>
 /// <param name="qualityMaintainer">The item to be maintained</param>
 public void Run(IInventoryItem item, IQualityMaintenance qualityMaintainer)
 {
     if (qualityMaintainer.Quality > 0)
     {
         // I am not happy with the use of a static class here because it can hamper unit testing. This should
         // ideally be injected
         qualityMaintainer.Quality -= QualityAssessor.CalculateDeteriorationRate(item);
     }
 }
Example #4
0
        /// <summary>
        /// Runs the algorithm
        /// </summary>
        /// <param name="item">The item to be maintained</param>
        /// <param name="qualityMaintainer">The item to be maintained</param>
        public void Run(IInventoryItem item, IQualityMaintenance qualityMaintainer)
        {
            var daysRemaining = item.SellIn;

            if (daysRemaining > FirstThreshold)
            {
                qualityMaintainer.Quality += FirstQualityIncrease;
            }
            else if (daysRemaining >= SecondThreshold && daysRemaining <= FirstThreshold)
            {
                qualityMaintainer.Quality += SecondQualityIncrease;
            }
            else if (daysRemaining >= 0 && daysRemaining < SecondThreshold)
            {
                qualityMaintainer.Quality += ThirdQualityIncrease;
            }
            else
            {
                qualityMaintainer.Quality = 0;
            }
        }
Example #5
0
 public void Run(IInventoryItem item, IQualityMaintenance qualityMaintainer)
 {
     qualityMaintainer.Quality--;
 }
 /// <summary>
 /// Runs the algorithm
 /// </summary>
 /// <param name="item">The item to be maintained</param>
 /// <param name="qualityMaintainer">The object to be maintained</param>
 public void Run(IInventoryItem item, IQualityMaintenance qualityMaintainer)
 {
     // We don't do anything, because the value needs to remain stable.
 }