You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
recyclarr/src/Recyclarr.TrashGuide/QualitySize/QualitySizeItem.cs

25 lines
937 B

namespace Recyclarr.TrashGuide.QualitySize;
public class QualitySizeItem(string quality, decimal min, decimal max, decimal preferred)
: QualityItem(quality, min, max)
{
public const decimal PreferredUnlimitedThreshold = 395;
public decimal Preferred { get; set; } = preferred;
public decimal? PreferredForApi => Preferred < PreferredUnlimitedThreshold ? Preferred : null;
public string AnnotatedPreferred => AnnotatedValue(Preferred, PreferredUnlimitedThreshold);
public decimal InterpolatedPreferred(decimal ratio)
{
var cappedMax = Math.Min(Max, PreferredUnlimitedThreshold);
return Math.Round(Min + (cappedMax - Min) * ratio, 1);
}
public bool IsPreferredDifferent(decimal? serviceValue)
{
return serviceValue == null
? PreferredUnlimitedThreshold != Preferred
: serviceValue != Preferred || PreferredUnlimitedThreshold == Preferred;
}
}