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