using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;

namespace CyberX8_Themes.Converters
{
    public class DecimalPrecisionConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is double number && parameter is int precision)
            {
                return number.ToString($"F{precision}");
            }
            return value;
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if(value==null||parameter==null)
            {
                return Binding.DoNothing;
            }
            if (value is double number)
            {
                if (int.TryParse(parameter.ToString(), out int precision))
                {
                    return Math.Round(number, precision);
                }
                else
                {
                    return Binding.DoNothing;
                }
            }
            return Binding.DoNothing;
        }
    }
}