Dispenser/DispenserUI/ViewModels/Converter/LogColorConverter.cs

38 lines
1.2 KiB
C#

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();
}
}