using Gestor.Model.Common; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Runtime.CompilerServices; using System.Windows; using System.Windows.Data; using System.Windows.Markup; using System.Windows.Media; namespace Gestor.Application.Converters { public class EnviadoColorConverter : MarkupExtension, IValueConverter { public EnviadoColorConverter() { } public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null || !(value is List)) { return new SolidColorBrush(Colors.IndianRed); } List statusDocumentoAssinados = (List)value; int num = statusDocumentoAssinados.Count((StatusDocumentoAssinado x) => { if (x.get_Status() == 1) { return true; } return x.get_Status() == 4; }); int num1 = statusDocumentoAssinados.Count((StatusDocumentoAssinado x) => x.get_Status() == 0); int num2 = statusDocumentoAssinados.Count((StatusDocumentoAssinado x) => x.get_Status() == 2); if (statusDocumentoAssinados.All((StatusDocumentoAssinado x) => x.get_Status() == 3)) { return new SolidColorBrush(Colors.IndianRed); } if (num2 > 0) { return new SolidColorBrush(Colors.Red); } if (num > 0 && num1 == 0 && num2 == 0) { return new SolidColorBrush(Colors.ForestGreen); } if (num == 0 && num1 > 0 && num2 == 0) { return new SolidColorBrush((Color)System.Windows.Application.Current.Resources["AggerBlue"]); } if (num <= 0 || num1 <= 0 || num2 != 0) { return new SolidColorBrush(Colors.IndianRed); } return new SolidColorBrush((Color)System.Windows.Application.Current.Resources["AggerYellow100"]); } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return null; } public override object ProvideValue(IServiceProvider serviceProvider) { return this; } } }