//Look for catgory public async Task <PaginatedResult <ProductModel> > GetPage(GetProductPageQuery search) { //var query = _readOnlyRepository.Query<Product>(x => x.Category.CategoryName); var query = _readOnlyRepository.Query <Product>(); if (!string.IsNullOrEmpty(search.Term)) { var term = search.Term.Trim(); query = query.Where(x => x.ProductName.Contains(term)); } var sortCriteria = search.GetSortCriteria(); var items = query .ProjectTo <ProductModel>(_mapper.ConfigurationProvider) .OrderByOrDefault(sortCriteria, x => x.ProductName); var page = await _paginator.MakePageAsync(_readOnlyRepository, query, items, search); return(page); }
public async Task Returns_CorrectPageInfo() { int pageNumber = 1; int pageSize = 3; GetProductPageQuery query = queryFactory.GetProductPageQuery(pageNumber, pageSize); var result = (await new GetProductPageQueryHandler(context, mapper).Handle(query)).PageInfo; var expected = new PageInfo() { CurrentPage = pageNumber, ItemsCount = context.Products.Count(), ItemsPerPage = pageSize }; Assert.AreEqual(expected.CurrentPage, result.CurrentPage); Assert.AreEqual(expected.ItemsPerPage, result.ItemsPerPage); Assert.AreEqual(expected.ItemsCount, result.ItemsCount); Assert.AreEqual(expected.TotalPages, result.TotalPages); }
public void Products_Send_CorrectCommand_WithDefaults() { var mediatorMock = new Mock <IMediator>(); GetProductPageQuery query = null; mediatorMock.Setup(c => c.Handle <ProductPageVM>(It.IsAny <GetProductPageQuery>())) .Callback <IRequest <ProductPageVM> >((pq) => query = pq as GetProductPageQuery) .Returns(Task.FromResult(new ProductPageVM())); var controller = new ProductController(mediatorMock.Object); _ = controller.Products(null); const int DefaultPageNumber = 1; Assert.That(query.PageNumber, Is.EqualTo(DefaultPageNumber)); const int DefautPageSize = 3; Assert.That(query.PageSize, Is.EqualTo(DefautPageSize)); Assert.IsNull(query.CurrentCategory); }
public async Task <IActionResult> GetCategoriesPage([FromQuery] GetProductPageQuery query) { var result = await _productService.GetCategoriesPage(query); return(Ok(result)); }