public async Task <PagedResult <WardenCheckResultDto> > BrowseChecksAsync(BrowseWardenCheckResults query) { var iterations = await _database.WardenIterations().Query(new BrowseWardenIterations { OrganizationId = query.OrganizationId, WardenName = query.WardenName, WatcherName = query.WatcherName, Page = query.Page, Results = query.Results }).PaginateAsync(query); var checkResults = new List <WardenCheckResultDto>(); foreach (var iteration in iterations.Items) { var checks = iteration.Results.Where(r => r.WatcherCheckResult.Watcher.Name.EqualsCaseInvariant(query.WatcherName)) .Select(x => new WardenCheckResultDto(x) { IterationId = iteration.Id }); checkResults.AddRange(checks); } return(PagedResult <WardenCheckResultDto> .From(iterations, checkResults)); }
public async Task <Maybe <PagedResult <WardenCheckResultRootDto> > > BrowseAsync(Guid organizationId, Guid wardenId, int page = 1, int results = 10) { var query = new BrowseWardenCheckResults { OrganizationId = organizationId, WardenId = wardenId, Page = page, Results = results }; return(await _database.WardenCheckResultRoots() .Query(query) .PaginateAsync(query)); }
public static IMongoQueryable <WardenCheckResultRootDto> Query(this IMongoCollection <WardenCheckResultRootDto> checkResults, BrowseWardenCheckResults query) { var values = checkResults.AsQueryable(); if (query.OrganizationId != Guid.Empty) { values = values.Where(x => x.OrganizationId == query.OrganizationId); } if (query.WardenId != Guid.Empty) { values = values.Where(x => x.WardenId == query.WardenId); } return(values.OrderByDescending(x => x.CreatedAt)); }