using System; using System.Globalization; using Avalonia.Data.Converters; using Avalonia.Media; using Serilog.Events; namespace DispenserUI.ViewModels.Converter; public class LogColorConverter : IValueConverter { private static readonly IBrush Gray = Brush.Parse("#BEBEBE"); private static readonly IBrush White = Brush.Parse("#FFFFFF"); private static readonly IBrush Golden = Brush.Parse("#FFD700"); private static readonly IBrush Red = Brush.Parse("#FF6347"); private static readonly IBrush DeepRed = Brush.Parse("#DC143C"); public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) { if (value is LogEventLevel level) return level switch { LogEventLevel.Verbose => Gray, LogEventLevel.Debug => Gray, LogEventLevel.Information => White, LogEventLevel.Warning => Golden, LogEventLevel.Error => Red, LogEventLevel.Fatal => DeepRed, _ => White }; return White; } public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) { throw new NotImplementedException(); } }