public async Task <IPagedList <Operation> > GetOperationsAsync(OperationSearchParameter searchParameters) { if (searchParameters.Limit <= 0) { return(new PagedList <Operation>(new Operation[0], 1, 1)); } var filter = Builders <Operation> .Filter.Empty; if (searchParameters.EntityId != null) { filter = filter & Builders <Operation> .Filter.Eq(x => x.EntityId, searchParameters.EntityId); } if (searchParameters.EntityType != null) { filter = filter & Builders <Operation> .Filter.Eq(x => x.EntityType, searchParameters.EntityType); } var collection = GetOperationsCollection(); var query = collection.Find(filter) .SortBy(x => x.Date) .Skip(searchParameters.Skip) .Limit(searchParameters.Limit); _logger.LogDebug($"Get operations query: {query}."); var filteredOperations = await query.ToListAsync(); var totalRows = (int)await collection.CountDocumentsAsync(filter); return(filteredOperations.ToPagedList(searchParameters.Skip, searchParameters.Limit, totalRows)); }
public async Task <IActionResult> GetAsync(OperationSearchParameter search) { if (search == null) { search = new OperationSearchParameter(); } var operations = await _operationsService.GetOperationsAsync(search); var pagedListDto = _mapper.Map <PagedListDto <OperationDto> >(operations); pagedListDto.BuildNavigationLinks(Request.GetDisplayUrl()); return(Ok(pagedListDto)); }
public async Task <IPagedList <Operation> > GetOperationsAsync(OperationSearchParameter searchParameters) { var result = await _operationsRepository.GetOperationsAsync(searchParameters); return(result); }