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

59 lines
1.6 KiB
C#

using YLErp.Modules.EodModule;
namespace YLErp.Modules.TradeRiskCalcModule
{
/// <summary>
/// 初始累计盈亏数据源
/// </summary>
class AccruedTotalPnlStartingDataSource<TEntity>
where TEntity : EodTradePosition
{
IEnumerable<TradePnlStatics> _list;
private AccruedTotalPnlStartingDataSource()
{
}
/// <summary>
/// 取值日
/// </summary>
public DateTime ValueDate { get; private set; }
/// <summary>
/// 起算日
/// </summary>
public DateTime StartDate { get; private set; }
public void Reset()
{
_list = null;
}
/// <summary>
///
/// </summary>
/// <param name="valueDate">取值日</param>
/// <param name="startDate">起算日</param>
public IEnumerable<TradePnlStatics> 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<TEntity>(OptUserInfo.SystemUser).GetAccruedStartPnls(startDate, true);
}
public static readonly AccruedTotalPnlStartingDataSource<TEntity> Default;
static AccruedTotalPnlStartingDataSource()
{
Default = new AccruedTotalPnlStartingDataSource<TEntity>();
}
}
}