Stabilzie modules
This commit is contained in:
@@ -41,15 +41,52 @@ public sealed class FindingSummaryService : IFindingSummaryService
|
||||
ct);
|
||||
|
||||
var summaries = findings.Select(f => _builder.Build(f)).ToList();
|
||||
var sorted = ApplySort(summaries, filter.SortBy, filter.SortDirection);
|
||||
|
||||
return new FindingSummaryPage
|
||||
{
|
||||
Items = summaries,
|
||||
Items = sorted,
|
||||
TotalCount = totalCount,
|
||||
Page = filter.Page,
|
||||
PageSize = filter.PageSize
|
||||
};
|
||||
}
|
||||
|
||||
private static IReadOnlyList<FindingSummary> ApplySort(
|
||||
List<FindingSummary> summaries,
|
||||
string? sortBy,
|
||||
string sortDirection)
|
||||
{
|
||||
if (string.IsNullOrEmpty(sortBy))
|
||||
return summaries;
|
||||
|
||||
var descending = string.Equals(sortDirection, "desc", StringComparison.OrdinalIgnoreCase);
|
||||
|
||||
IEnumerable<FindingSummary> ordered = sortBy.ToLowerInvariant() switch
|
||||
{
|
||||
"cvss" => descending
|
||||
? summaries.OrderByDescending(s => s.CvssScore ?? 0m)
|
||||
: summaries.OrderBy(s => s.CvssScore ?? 0m),
|
||||
"severity" => descending
|
||||
? summaries.OrderByDescending(s => s.Severity)
|
||||
: summaries.OrderBy(s => s.Severity),
|
||||
"status" => descending
|
||||
? summaries.OrderByDescending(s => s.Status)
|
||||
: summaries.OrderBy(s => s.Status),
|
||||
"component" => descending
|
||||
? summaries.OrderByDescending(s => s.Component)
|
||||
: summaries.OrderBy(s => s.Component),
|
||||
"firstseen" => descending
|
||||
? summaries.OrderByDescending(s => s.FirstSeen)
|
||||
: summaries.OrderBy(s => s.FirstSeen),
|
||||
"lastupdated" => descending
|
||||
? summaries.OrderByDescending(s => s.LastUpdated)
|
||||
: summaries.OrderBy(s => s.LastUpdated),
|
||||
_ => summaries
|
||||
};
|
||||
|
||||
return ordered.ToList();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user