Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public AssetClosestDueDateCalculationResult CalculateClosestRightEndDate(Asset asset)
- {
- // if exist Custom with EndDate >= Now => get Min EndDate
- var asset =
- var assetRight = asset.Rights
- .Where(x => x.GetEndDateType() == AssetRight.EndDateType.Custom)
- .Where(x => x.GetEndDate() >= Current.DateNow())
- .OrderBy(x => x.GetEndDate())
- .FirstOrDefault();
- if (assetRight != null)
- {
- return new AssetClosestDueDateCalculationResult
- {
- Date = right.GetEndDate(),
- Type = right.GetEndDateType()
- };
- }
- // if exist Perpetual => get First EndDate
- assetRight = asset.Rights
- .Where(x => x.GetEndDateType() == AssetRight.EndDateType.Perpetual)
- .FirstOrDefault()
- assetRights = asset.Rights.Where(x => x.GetEndDateType() == AssetRight.EndDateType.Perpetual);
- if (assetRight != null)
- {
- return new AssetClosestDueDateCalculationResult
- {
- Date = null,
- Type = AssetRight.EndDateType.Perpetual
- };
- }
- // if Custom and EndDate < Now => get Max EndDate
- assetRight = asset.Rights
- .Where(x => x.GetEndDateType() == AssetRight.EndDateType.Custom)
- .OrderByDescending(x => x.GetEndDate())
- .FirstOrDefault();
- if (assetRight != null)
- {
- return new AssetClosestDueDateCalculationResult
- {
- Date = right.GetEndDate(),
- Type = right.GetEndDateType()
- };
- }
- return new AssetClosestDueDateCalculationResult
- {
- Date = null,
- Type = AssetRight.EndDateType.Undefined
- };
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement