using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.Core;
using Tango.BL.Enumerations;
using Tango.PMR.Printing;

namespace Tango.MachineStudio.RML.Models
{
    public static class ColorCalibrationExt
    {
        public static Dictionary<LiquidTypes, LAB> TargetLiquidTypeToLAB = new Dictionary<LiquidTypes, LAB>
        {
            {LiquidTypes.Cyan, new LAB(51.94591,-18.3438,-39.0577)},
            {LiquidTypes.Magenta, new LAB(47.46248, 65.84478, 3.922838)},
            {LiquidTypes.Yellow, new LAB(84.41956,-0.27005, 94.05445)},
            {LiquidTypes.Black, new LAB(26.57986, -0.13567, 0.948574)},
        };
        public static Dictionary<LiquidTypes, string> DisplayLiquidTypeToLABType = new Dictionary<LiquidTypes, string>
        {
            {LiquidTypes.Cyan, "L"},
            {LiquidTypes.Magenta, "L"},
            {LiquidTypes.Yellow, "B"},
            {LiquidTypes.Black, "L"},
        };
    };

    public class LAB
    {
        public double L { get; set; }
        public double A { get; set; }
        public double B { get; set; }

        public LAB( double l, double a, double b)
        {
            L = l; B = b; A = a;
        }
    };

    public class CalibrationMeasurementModel : ExtendedObject
    {
        #region properties
        private double _l;

        public double L
        {
            get { return _l; }
            set { _l = value; RaisePropertyChangedAuto(); }
        }

        private double _a;

        public double A
        {
            get { return _a; }
            set { _a = value; RaisePropertyChangedAuto(); }
        }

        private double _b;

        public double B
        {
            get { return _b; }
            set { _b = value; RaisePropertyChangedAuto(); }
        }

        private double _ink;

        public double Ink
        {
            get { return _ink; }
            set { _ink = value; RaisePropertyChangedAuto(); }
        }
        #endregion

        public CalibrationMeasurementModel()
        {
           
        }
    }
}