using IndexFormula.Finance.DataProvider;
using MuchInfo.Chart.Data.EnumTypes;
using MuchInfo.Chart.Data.Interfaces;
using MuchInfo.Chart.Data.Models;
using System;
using System.Collections.Generic;
namespace MuchInfo.Chart.DataAdapter
{
///
/// 图表与编辑器的数据交换
///
public interface IDataService
{
///
/// 使用公式计算图表数据
///
/// 源数据,需要计算的数据
/// 所有要计算的公式
/// 周期类型
/// 自定义周期分钟数
/// 返回图表数据
List Calculate(List source, List sourceChart, Data.EnumTypes.CycleType cycleType, TimeSpan minutes);
///
/// 使用公式计算图表数据
///
/// 源数据,需要计算的数据
/// 公式
/// 周期类型
/// 自定义周期分钟数
/// 返回图表数据
FormulaModel Calculate(List source, FormulaModel formula, Data.EnumTypes.CycleType cycleType, TimeSpan minutes);
///
/// 打开指标编辑器
///
/// 计算源数据
/// 当前图表的所有计算公式
/// 周期类型
/// 自定义周期分钟数
/// 返回图表数据
List OpenEditor(List source, string[] formulaArray, CycleType cycleType, TimeSpan minutes);
///
/// 编辑指定的公式
///
/// 公式名称
void EditFormula(string formulaName);
///
/// 打开指标编辑器
///
/// 公式名称
void OpenFormulaEdit(string formulaName);
///
/// 设置图表语言
///
/// 语言类型
void SetEditorLanguage(ChartLanguageType language);
///
/// 从文件中加载公式集合
///
/// 公式文件fml
///
SpaceModel LoadSpaceFromFile(string fileName);
///
/// 保存指标参数
///
/// 公式参数
void SaveFormulaParams(List programModels);
///
/// 数据转换
///
/// 数据类型
/// 周期
/// 自定义周期时间
///
CommonDataProvider DataPointConvert(List source,
Data.EnumTypes.CycleType cycleType, TimeSpan minutes, IDataManager dataManager);
}
}