using CoreLibrary.Core;
using System.Globalization;

namespace MauiSpark.Convertisseurs
{
    public class CouleurVersCouleurMAUI : IValueConverter
    {
        public static Color Rouge { get; private set; } = Color.FromRgb(255, 0, 0);
        public static Color Vert { get; private set; } = Color.FromRgb(0, 255, 0);
        public static Color Bleu { get; private set; } = Color.FromRgb(0, 0, 255);
        public static Color Jaune { get; private set; } = Color.FromRgb(255, 255, 0);
        public static Color Noir { get; private set; } = Color.FromRgb(0, 0, 0);
        public static Color Blanc { get; private set; } = Color.FromRgb(255, 255, 255);


        public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
        {
            if (value is not Couleur) 
                return Noir;

            switch (value)
            {
                case Couleur.BLANC:
                    return Blanc;
                case Couleur.BLEU:
                    return Bleu;
                case Couleur.VERT:
                    return Vert;
                case Couleur.ROUGE:
                    return Rouge;
                case Couleur.NOIR:
                    return Noir;
                case Couleur.JAUNE:
                    return Jaune;
                default:
                    return Noir;
            }
        }

        public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
        {
            if (value is not Color) return Couleur.NOIR;

            if (value.Equals(Rouge))
                return Couleur.ROUGE;
            if (value.Equals(Vert))
                return Couleur.VERT;
            if (value.Equals(Bleu))
                return Couleur.BLEU;
            if (value.Equals(Jaune))
                return Couleur.JAUNE;
            if (value.Equals(Noir))
                return Couleur.NOIR;
            if (value.Equals(Blanc))
                return Couleur.BLANC;

            return Couleur.NOIR;
        }
    }
}
