38 lines
1.2 KiB
C#
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();
|
|
}
|
|
} |