using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Globalization; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using OxyPlot; using Tango.Core; namespace Tango.DispenserAnalyzer.UI.Analysis { public class AnalyzerResultBase : ExtendedObject, IAnalyzerResult { public AnalyzerResultValue Result { get; set; } // public List PlotValues { get; set; } //public ObservableCollection Points { get; set; } public List Properties { get { List props = new List(); if (this.GetType() == typeof(AnalyzerResultBase)) return props; foreach (var prop in this.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).OrderByAlphaNumeric(x => x.Name)) { AnalyzerResultProperty aProp = new AnalyzerResultProperty(); if (aProp.GetType() == typeof(IEnumerable<>)) { continue; } if (prop.GetCustomAttribute() != null) { aProp.Name = prop.GetCustomAttribute().Description; //} //else //{ // aProp.Name = prop.Name; //} object val = prop.GetValue(this); aProp.Value = (val is double) ? ((double)val).ToString("F") : val.ToString(); props.Add(aProp); } } return props; } } public bool IsShowPlotResult { get; set; } public bool IsShowLineChartResult { get; set; } public AnalyzerResultChartData RangeToCountChart { get; set; } public AnalyzerResultChartData RangeToTimeChart { get; set; } public AnalyzerResultChartData LineChart { get; set; } public bool BackgroundMode { get; set; } public AnalyzerResultBase() { //PlotValues = new List(); Result = AnalyzerResultValue.Undetermined; IsShowPlotResult = false; IsShowLineChartResult = false; RangeToCountChart = new AnalyzerResultChartData(); RangeToTimeChart = new AnalyzerResultChartData(); LineChart = new AnalyzerResultChartData(); BackgroundMode = false; } } }