using YLErp.Modules.EodModule;
namespace YLErp.Modules.TradeRiskCalcModule
{
///
/// 初始累计盈亏数据源
///
class AccruedTotalPnlStartingDataSource
where TEntity : EodTradePosition
{
IEnumerable _list;
private AccruedTotalPnlStartingDataSource()
{
}
///
/// 取值日
///
public DateTime ValueDate { get; private set; }
///
/// 起算日
///
public DateTime StartDate { get; private set; }
public void Reset()
{
_list = null;
}
///
///
///
/// 取值日
/// 起算日
public IEnumerable GetDatas(DateTime valueDate, DateTime startDate)
{
valueDate = valueDate.Date;
startDate = startDate.Date;
if (_list != null && ValueDate == valueDate && StartDate == startDate)
{
return _list;
}
ValueDate = valueDate;
StartDate = startDate;
return _list = new AccruedTotalPnlService(OptUserInfo.SystemUser).GetAccruedStartPnls(startDate, true);
}
public static readonly AccruedTotalPnlStartingDataSource Default;
static AccruedTotalPnlStartingDataSource()
{
Default = new AccruedTotalPnlStartingDataSource();
}
}
}