Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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));
        }