Files
zszq-trs/Framework/YLErp.Core/Abstract/DataProviders/IPriceProvider.cs
T
2024-05-09 14:06:26 +08:00

77 lines
2.0 KiB
C#

using YLErp.DBModels;
using YLErp.Models;
namespace YLErp.Abstract.DataProviders
{
/// <summary>
/// 价格提供接口
/// </summary>
public interface IPriceProvider
{
/// <summary>
/// 获取价格
/// </summary>
double GetPrice(string instrumentCode);
/// <summary>
/// 获取价格
/// </summary>
bool TryGetPrice(string instrumentCode, out double price);
}
/// <summary>
/// 日终结算价获取
/// </summary>
public interface IEodPriceProvider
{
/// <summary>
/// 获取价格
/// </summary>
double GetPrice(string instrumentCode, SettlementTypeEnum settlementType);
/// <summary>
/// 获取价格
/// </summary>
bool TryGetPrice(string instrumentCode, SettlementTypeEnum settlementType, out double price);
}
/// <summary>
/// 日终结算价获取
/// </summary>
public interface IEodPriceProviderV2
{
/// <summary>
/// 获取标的收盘价或结算价(如果标的在取值日之前已到期,则取标的到期日的收盘价或结算价)
/// </summary>
bool TryGetEodPrice(string instrumentCode, out EodPrice eodPrice);
}
/// <summary>
/// 日终价格封装接口
/// </summary>
public interface IEodPriceProviderWrap : IPriceProvider
{
SettlementTypeEnum SettlementType { get; }
}
/// <summary>
/// 篮子标的价格提供接口
/// 特别抽出这个接口也是为了防止数据库被恶意配置了篮子标的的死循环引用数据
/// </summary>
public interface IBasketPriceProvider
{
/// <summary>
/// 获取篮子的子标的价格
/// </summary>
bool TryGetSubPrice(string underlyingCode, out double price, out double settlePrice);
}
/// <summary>
/// 多个价格提供接口聚合提供价格
/// </summary>
public interface IAggregatePriceProvider : IPriceProvider
{
}
}