From 6581ba3eeecbdb9e2881629b603ce28d5a83de15 Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Mon, 14 Sep 2020 20:48:18 -0500 Subject: [PATCH] =?UTF-8?q?refactor(archival):=20=E2=99=BB=20only=20fetch?= =?UTF-8?q?=20most=20primary=20url=20for=20each=20list=20segment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Commands/ArchiveList.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/services/Archival/FilterLists.Archival.Application/Commands/ArchiveList.cs b/services/Archival/FilterLists.Archival.Application/Commands/ArchiveList.cs index 0cc40128f..fa1f5aaf0 100644 --- a/services/Archival/FilterLists.Archival.Application/Commands/ArchiveList.cs +++ b/services/Archival/FilterLists.Archival.Application/Commands/ArchiveList.cs @@ -43,7 +43,11 @@ public async Task Handle(Command request, CancellationToken cancellationTo _logger.LogDebug("Archiving list {ListId}", request.ListId); var listDetails = await _directory.GetListDetailsAsync(request.ListId, cancellationToken); - var segments = listDetails.ViewUrls?.GroupBy(u => u.SegmentNumber).ToList(); + var segments = listDetails.ViewUrls? + .GroupBy(u => u.SegmentNumber) + .Select(g => g.OrderBy(u => u.Primariness)) + .First() + .ToList(); if (segments != null) { @@ -53,14 +57,14 @@ public async Task Handle(Command request, CancellationToken cancellationTo Stream? contents = default; // TODO: fetch list file stream var path = Path.Combine( listDetails.Id.ToString(CultureInfo.InvariantCulture), - segment.Key.ToString(CultureInfo.InvariantCulture)); - _logger.LogDebug("Archiving segment {SegmentNumber} of list {ListId}", segment.Key, request.ListId); + segment.SegmentNumber.ToString(CultureInfo.InvariantCulture)); + _logger.LogDebug("Archiving segment {SegmentNumber} of list {ListId}", segment.SegmentNumber, request.ListId); archiveTasks.Add(_archiver.ArchiveFileAsync(contents, path, cancellationToken)); } await Task.WhenAll(archiveTasks); _archiver.Commit(); - _logger.LogDebug("Archived segments {@SegmentNumbers} of list {ListId}", segments.Select(s => s.Key), request.ListId); + _logger.LogDebug("Archived segments {@SegmentNumbers} of list {ListId}", segments.Select(s => s.SegmentNumber), request.ListId); } else {