SHOW:
|
|
- or go back to the newest paste.
1 | public AssetClosestDueDateCalculationResult CalculateClosestRightEndDate(Asset asset) | |
2 | { | |
3 | // if exist Custom with EndDate >= Now => get Min EndDate | |
4 | - | IEnumerable<AssetRight> assetRights = asset.Rights.Where(x => x.GetEndDateType() == AssetRight.EndDateType.Custom); |
4 | + | var asset = |
5 | - | if (assetRights.Any()) |
5 | + | |
6 | var assetRight = asset.Rights | |
7 | - | var right = assetRights |
7 | + | .Where(x => x.GetEndDateType() == AssetRight.EndDateType.Custom) |
8 | - | .Where(x => x.GetEndDate() >= Current.DateNow()) |
8 | + | .Where(x => x.GetEndDate() >= Current.DateNow()) |
9 | - | .OrderBy(x => x.GetEndDate()) |
9 | + | .OrderBy(x => x.GetEndDate()) |
10 | - | .FirstOrDefault(); |
10 | + | .FirstOrDefault(); |
11 | ||
12 | - | if (right != null) |
12 | + | if (assetRight != null) |
13 | { | |
14 | return new AssetClosestDueDateCalculationResult | |
15 | { | |
16 | Date = right.GetEndDate(), | |
17 | Type = right.GetEndDateType() | |
18 | }; | |
19 | - | } |
19 | + | |
20 | ||
21 | // if exist Perpetual => get First EndDate | |
22 | - | // if exist Perpetual => get First EndDate |
22 | + | assetRight = asset.Rights |
23 | .Where(x => x.GetEndDateType() == AssetRight.EndDateType.Perpetual) | |
24 | - | if (assetRights.Any()) |
24 | + | .FirstOrDefault() |
25 | ||
26 | - | var right = assetRights.First(); |
26 | + | |
27 | if (assetRight != null) | |
28 | { | |
29 | return new AssetClosestDueDateCalculationResult | |
30 | - | Date = right.GetEndDate(), |
30 | + | |
31 | - | Type = right.GetEndDateType() |
31 | + | Date = null, |
32 | Type = AssetRight.EndDateType.Perpetual | |
33 | }; | |
34 | } | |
35 | ||
36 | - | assetRights = asset.Rights.Where(x => x.GetEndDateType() == AssetRight.EndDateType.Custom); |
36 | + | |
37 | - | if (assetRights.Any()) |
37 | + | assetRight = asset.Rights |
38 | .Where(x => x.GetEndDateType() == AssetRight.EndDateType.Custom) | |
39 | - | var right = assetRights.OrderByDescending(x => x.GetEndDate()).FirstOrDefault(); |
39 | + | .OrderByDescending(x => x.GetEndDate()) |
40 | .FirstOrDefault(); | |
41 | - | if (right != null) |
41 | + | if (assetRight != null) |
42 | { | |
43 | return new AssetClosestDueDateCalculationResult | |
44 | { | |
45 | Date = right.GetEndDate(), | |
46 | Type = right.GetEndDateType() | |
47 | }; | |
48 | - | } |
48 | + | |
49 | ||
50 | return new AssetClosestDueDateCalculationResult | |
51 | { | |
52 | Date = null, | |
53 | Type = AssetRight.EndDateType.Undefined | |
54 | }; | |
55 | } | |
56 | } |