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
}
}