public override Color?GetBackgroundColor(decimal value, ConditionalFormatting conditionalFormatting) { var minValue = conditionalFormatting.GetMinValue(); var maxValue = conditionalFormatting.GetMaxValue(); var avgValue = Avg.GetValue(minValue, maxValue); var newMinValue = Min.GetValue(minValue, maxValue); if (newMinValue <= avgValue) { minValue = newMinValue; } var newMaxValue = Max.GetValue(minValue, maxValue); if (newMaxValue >= avgValue) { maxValue = newMaxValue; } if (maxValue == minValue) { if (value <= newMinValue && Min.Type == ConditionalFormattingVOType.Num) { return(ColorMin); } if (value >= newMaxValue && Max.Type == ConditionalFormattingVOType.Num) { return(ColorMax); } return(value < 0 ? ColorMin : ColorMax); } if (value <= minValue) { return(ColorMin); } if (value >= maxValue) { return(ColorMax); } if (value == avgValue) { return(ColorAvg); } if (value < avgValue) { return(MergeColors(value, minValue ?? 0, avgValue, ColorMin, ColorAvg)); } return(MergeColors(value, avgValue, maxValue ?? 0, ColorAvg, ColorMax)); }
public abstract Color?GetBackgroundColor(decimal value, ConditionalFormatting conditionalFormatting);
public Color?GetBackgroundColor(decimal value, ConditionalFormatting conditionalFormatting) { return(Items.Select(r => r.GetBackgroundColor(value, conditionalFormatting)).FirstOrDefault(r => r != null)); }