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));
        }
Пример #2
0
 public abstract Color?GetBackgroundColor(decimal value, ConditionalFormatting conditionalFormatting);
Пример #3
0
 public Color?GetBackgroundColor(decimal value, ConditionalFormatting conditionalFormatting)
 {
     return(Items.Select(r => r.GetBackgroundColor(value, conditionalFormatting)).FirstOrDefault(r => r != null));
 }