public async Task <IPagedList <Item> > GetItems(ItemSearchParameter searchParameters) { var collection = _playgroundContext.GetItemsCollection(); var filter = Builders <Item> .Filter.Empty; if (!string.IsNullOrEmpty(searchParameters.Name)) { filter = filter & Builders <Item> .Filter.Eq(x => x.Name, searchParameters.Name); } if (!string.IsNullOrEmpty(searchParameters.Owner)) { filter = filter & Builders <Item> .Filter.Eq(x => x.Owner, searchParameters.Owner); } if (!string.IsNullOrEmpty(searchParameters.Tag)) { filter = filter & Builders <Item> .Filter.AnyEq(x => x.Tags, searchParameters.Tag); } var query = collection.Find(filter) .SortBy(x => x.Id) .Skip(searchParameters.Skip) .Limit(searchParameters.Limit); _logger.LogDebug($"Get items query: {query}."); var items = await query.ToListAsync(); var totalRows = (int)await collection.CountDocumentsAsync(filter); return(items.ToPagedList(searchParameters.Skip, searchParameters.Limit, totalRows)); }
public async Task <IActionResult> Get(ItemSearchParameter search) { _logger.LogDebug($"Get items - ApiVersion: {RequestedApiVersion}"); var items = await _itemsService.GetItems(search); var itemDtos = _mapper.Map <PagedListDto <ItemDto> >(items); itemDtos.BuildNavigationLinks(Request.GetDisplayUrl()); return(Ok(itemDtos)); }
public async Task GetItemsReturnsExpectedItems(IPagedList <Item> expectedItems, ItemSearchParameter searchParameters, [Frozen] Mock <IItemsRepository> itemsRepositoryMock, ItemsService itemsService) { // Arrange itemsRepositoryMock.Setup(x => x.GetItems(searchParameters)).ReturnsAsync(expectedItems); // Act var result = await itemsService.GetItems(searchParameters); // Assert Assert.Equal(result, expectedItems); itemsRepositoryMock.VerifyAll(); }
public async Task <IPagedList <Item> > GetItems(ItemSearchParameter searchParameter) { return(await _itemsRepository.GetItems(searchParameter)); }