public async Task GetByCategories() { var products = GenerateFakeData <Product>(5); var categories = GetFakeCategoryData(2); GetByCategoriesRequest getByCategoriesRequest = new GetByCategoriesRequest(); getByCategoriesRequest.Categories.Adapt(categories); var mockedService = new Mock <IProductManager>(); mockedService.Setup(x => x.GetByCategories(getByCategoriesRequest)).Returns(products); var controller = new ProductController(mockedService.Object); var result = await controller.GetByCategories(getByCategoriesRequest); Assert.AreEqual(5, result.DataList.Count); }
public async Task <Response <Product> > GetByCategories([FromBody] GetByCategoriesRequest req) { Response <Product> httpResponse = new Response <Product>(); try { httpResponse.RequestState = true; httpResponse.DataList = await _productManager.GetByCategories(req); httpResponse.ErrorState = false; } catch (Exception ex) { httpResponse.ErrorState = true; httpResponse.ErrorList.Add(ex.Adapt <ApiException>()); } return(httpResponse); }
public async Task <List <Product> > GetByCategories(GetByCategoriesRequest req) { return(await _context.Products .Where(p => p.ProductCategories.All(item => req.Categories.Contains(item.Category))).ToListAsync()); }