Files
zszq-trs/YLErpDAL/Modules/DataProviderModule/EodRiskCalcDataProvider.cs
T
2024-05-09 14:06:26 +08:00

50 lines
1.7 KiB
C#

using YLErp.BLL;
namespace YLErp.Modules.DataProviderModule
{
/// <summary>
/// 日终风险计算数据提供器
/// </summary>
public class EodRiskCalcDataProvider
{
private readonly EodPriceProvider _eodPriceProvider;
private readonly UnderlyingProvider _underlyingProvider;
public EodRiskCalcDataProvider(DateTime valueDate, DateTime? startDate = null)
{
_underlyingProvider = new UnderlyingProvider(OptUserInfo.SystemUser);
_underlyingProvider.Initialize(startDate);
_eodPriceProvider = new EodPriceProvider(valueDate);
}
/// <summary>
/// 根据代码获取标的信息
/// 涉及到历史标的所以不从缓存中获取
/// </summary>
public underlying_manager GetUnderlying(string underlyingCode)
{
if (underlyingCode is null)
{
throw new ArgumentNullException(nameof(underlyingCode));
}
return _underlyingProvider.GetUnderlying(underlyingCode);
}
/// <summary>
/// 获取标的收盘价或结算价(如果标的在取值日之前已到期,则取标的到期日的收盘价或结算价)
/// </summary>
public bool TryGetEodPrice(string underlyingCode, SettlementTypeEnum settlementType, out double price)
{
return _eodPriceProvider.TryGetPrice(underlyingCode, settlementType, out price);
}
/// <summary>
/// 返回数据查询接口(现在返回的是EF查询接口)
/// </summary>
public IQueryable<underlying_manager> GetUnderlyingQuery()
{
return underlying_managerBLL.GetQuery();
}
}
}