Advertisement
Guest User

Untitled

a guest
Jul 26th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public AssetClosestDueDateCalculationResult CalculateClosestRightEndDate(Asset asset)
  2.         {
  3.             // if exist Custom with EndDate >= Now => get Min EndDate
  4.             var asset =
  5.  
  6.             var assetRight = asset.Rights
  7.                 .Where(x => x.GetEndDateType() == AssetRight.EndDateType.Custom)
  8.                 .Where(x => x.GetEndDate() >= Current.DateNow())
  9.                 .OrderBy(x => x.GetEndDate())
  10.                 .FirstOrDefault();
  11.  
  12.             if (assetRight != null)
  13.             {
  14.                 return new AssetClosestDueDateCalculationResult
  15.                     {
  16.                         Date = right.GetEndDate(),
  17.                         Type = right.GetEndDateType()
  18.                     };
  19.             }
  20.  
  21.             // if exist Perpetual => get First EndDate
  22.             assetRight = asset.Rights
  23.                 .Where(x => x.GetEndDateType() == AssetRight.EndDateType.Perpetual)
  24.                 .FirstOrDefault()
  25.  
  26.             assetRights = asset.Rights.Where(x => x.GetEndDateType() == AssetRight.EndDateType.Perpetual);
  27.             if (assetRight != null)
  28.             {
  29.                 return new AssetClosestDueDateCalculationResult
  30.                 {
  31.                     Date = null,
  32.                     Type = AssetRight.EndDateType.Perpetual
  33.                 };
  34.            }
  35.  
  36.             // if Custom and EndDate < Now => get Max EndDate
  37.             assetRight = asset.Rights
  38.                 .Where(x => x.GetEndDateType() == AssetRight.EndDateType.Custom)
  39.                 .OrderByDescending(x => x.GetEndDate())
  40.                 .FirstOrDefault();
  41.             if (assetRight  != null)
  42.             {
  43.                     return new AssetClosestDueDateCalculationResult
  44.                     {
  45.                         Date = right.GetEndDate(),
  46.                         Type = right.GetEndDateType()
  47.                     };
  48.             }
  49.  
  50.             return new AssetClosestDueDateCalculationResult
  51.             {
  52.                 Date = null,
  53.                 Type = AssetRight.EndDateType.Undefined
  54.             };
  55.         }
  56.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement