using MuchInfo.Chart.Data.EnumTypes; using MuchInfo.Chart.Data.Interfaces; using MuchInfo.Chart.DataAccess; using MuchInfo.Chart.WPF.Primitives; using System; using System.Collections.Generic; using System.Linq; using System.Windows; using System.Windows.Input; namespace MuchInfo.Chart.App.Services { /// /// Class DataService /// public class DataService : IDataService { #region Methods #region Public Methods public List GetModifierKeys() { var list = GetEnumList(); list.Remove(ModifierKeys.Windows); return list; } public List GetCycleTypes() { var list = GetEnumList(); list.Remove(CycleType.None); list.Remove(CycleType.Custom); return list; } /// /// Gets the data set. /// /// The symbol. /// The type. /// The count. /// ChartDataSet. public ChartDataSet GetDataSet(string symbol, CycleType type, int count) { try { if (string.IsNullOrWhiteSpace(symbol)) return null; var dataAccess = new FileDataAccess(); var dataPoints = dataAccess.GetDataPoints(symbol, type, DateTime.MinValue, DateTime.Now, count); if (dataPoints == null) return null; var result = dataPoints.Cast().ToList(); var dataSet = new ChartDataSet(result); return dataSet; } catch { return null; } } public List GetDrawingToolPositions() { return GetEnumList(); } public List GetDrawingToolTypes() { return GetEnumList(); } public List GetIndicatorTypes() { return new List() { "MACD", "FASTSO", "RSI" }; } public Dictionary GetLanguages() { return new Dictionary { {ChartLanguageType.SimplifiedChinese, "简体中文"}, {ChartLanguageType.TraditionalChinese, "繁体中文"}, {ChartLanguageType.English, "英文"} }; } public List GetLinePlotTypes() { return GetEnumList(); } public List GetVisibilities() { return new List { Visibility.Visible, Visibility.Collapsed }; } #endregion Public Methods #region Private Methods private List GetEnumList() { var values = Enum.GetValues(typeof(T)); return values.Cast().ToList(); } #endregion Private Methods #endregion Methods } }