50 lines
1.7 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|