View difference between Paste ID: jNW5EZ75 and sNB0Y6hf
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
    }