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