From f437f7eef5bc24132f1c3ee70c1762e652b09da2 Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Fri, 8 Jun 2018 15:00:16 -0500 Subject: [PATCH] crawled date dependent on HttpStatusCode --- .../FilterList/FilterListService.cs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/FilterLists.Services/FilterList/FilterListService.cs b/src/FilterLists.Services/FilterList/FilterListService.cs index 2f0550860..d460ed4f6 100644 --- a/src/FilterLists.Services/FilterList/FilterListService.cs +++ b/src/FilterLists.Services/FilterList/FilterListService.cs @@ -24,12 +24,13 @@ public async Task> GetAllSummariesAsync() return summaries.GroupJoin(latestSnapshots, summary => summary.Id, snap => snap.FilterListId, (summary, snap) => { - var snaps = snap as Data.Entities.Snapshot[] ?? snap.ToArray(); + snap = snap as Data.Entities.Snapshot[] ?? snap.ToArray(); + var crawledDate = snap.Any() ? snap.Single().CreatedDateUtc : (DateTime?) null; return new ListSummaryDto { Id = summary.Id, AddedDate = summary.AddedDate, - CrawledDate = snaps.Any() ? snaps.Single().CreatedDateUtc : (DateTime?) null, + CrawledDate = crawledDate, Languages = summary.Languages, Name = summary.Name, ViewUrl = summary.ViewUrl @@ -40,7 +41,7 @@ public async Task> GetAllSummariesAsync() private async Task> GetSummaryDtos() { return await DbContext.FilterLists.AsNoTracking() - .OrderBy(list => list.Name) + .OrderBy(l => l.Name) .ProjectTo() .ToListAsync(); } @@ -48,10 +49,10 @@ private async Task> GetSummaryDtos() private async Task> GetLatestSnapshots() { return await DbContext.Snapshots.AsNoTracking() - .Where(snap => - snap.IsCompleted && - (snap.AddedSnapshotRules.Count > 0 || snap.RemovedSnapshotRules.Count > 0)) - .GroupBy(snap => snap.FilterListId, + .Where(s => s.IsCompleted && + s.HttpStatusCode == "200" && + (s.AddedSnapshotRules.Count > 0 || s.RemovedSnapshotRules.Count > 0)) + .GroupBy(s => s.FilterListId, (key, x) => x.OrderByDescending(y => y.CreatedDateUtc).First()) .ToListAsync(); } @@ -78,7 +79,9 @@ private async Task GetActiveRuleCount(ListDetailsDto details) private async Task GetCrawledDate(ListDetailsDto details) { var snapshotDates = DbContext.Snapshots.AsNoTracking() - .Where(s => s.FilterListId == details.Id && s.IsCompleted && + .Where(s => s.FilterListId == details.Id && + s.IsCompleted && + s.HttpStatusCode == "200" && (s.AddedSnapshotRules.Count > 0 || s.RemovedSnapshotRules.Count > 0)) .Select(s => s.CreatedDateUtc)