using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Net.Http.Headers; namespace InABox.WPF { public class DoubleCalculatorFunction : AbstractCalculatorFunction { protected override double Calculate(double current, double next, NumericCalculatorType type) { var result = type switch { NumericCalculatorType.Sum => current + next, NumericCalculatorType.Product => current * next, NumericCalculatorType.Subtraction => current - next, NumericCalculatorType.Maximum => current > next ? current : next, NumericCalculatorType.Minimum => current < next ? current : next, _ => current }; return result; } } public class DoubleArrayConverter : AbstractNumericArrayConverter { protected override double[] Convert(IEnumerable values) { var result = values.Select(double.Parse).ToArray(); return result; } } public class DoubleCalculator : AbstractNumericCalculator { [TypeConverter(typeof(DoubleArrayConverter))] public override double[] Constants { get; set; } } }