public override async Task <ActionResult <PagedList <OrderDto> > > Handle(ListOrdersCommand command) { var orders = await _listOrdersQuery.Query(command); var shippingMethodsDtoResult = await _listShippingMethodsQueryHandler.Handle(new ListShippingMethodsCommand()); if (shippingMethodsDtoResult.Failure) { return(Error(shippingMethodsDtoResult.ErrorMessages)); } var orderStatusesDtoResult = await _listOrderStatusesQueryHandler.Handle(new ListOrderStatusesCommand()); if (orderStatusesDtoResult.Failure) { return(Error(orderStatusesDtoResult.ErrorMessages)); } // TODO: fix workingLanguageId var ordersDto = _mapper.Map(orders, new PagedList <OrderDto>(), opt => opt.Items["WorkingLanguageId"] = 1); foreach (var orderDto in ordersDto.Items) { orderDto.OrderStatus = orderStatusesDtoResult.Object.FirstOrDefault(o => o.Value.ToString() == orderDto.OrderStatus).Text; orderDto.ShippingMethod = shippingMethodsDtoResult.Object.FirstOrDefault(o => o.Value.ToString() == orderDto.ShippingMethod).Text; } return(Ok(ordersDto)); }
public async Task ShouldListOrders() { // Arrange var listOrdersCommand = new ListOrdersCommand(1); // Act var result = await _listOrdersQueryHandler.Handle(listOrdersCommand); // Assert Assert.IsNotNull(result?.Object); }
public async Task <IActionResult> ListOrders(ListOrdersCommand listOrdersCommand) { var pagedOrdersDtoResult = await QueryProcessor.GetQueryHandler <ListOrdersCommand, PagedList <OrderDto> >(listOrdersCommand); if (pagedOrdersDtoResult.Failure) { return(BadRequest(pagedOrdersDtoResult.ErrorMessages)); } var pagedOrdersDto = pagedOrdersDtoResult.Object; return(Ok(pagedOrdersDto)); }
public override async Task <PagedList <Order> > Query(ListOrdersCommand command) { var query = DbContext.Orders .Include(o => o.ShippingMethod) .Include(o => o.Basket).ThenInclude(o => o.BasketItems).ThenInclude(o => o.Product).ThenInclude(o => o.Route) .Include(o => o.Basket).ThenInclude(o => o.BasketItems).ThenInclude(o => o.Product).ThenInclude(o => o.Characteristics).ThenInclude(o => o.Characteristic) .Include(o => o.Basket).ThenInclude(o => o.BasketItems).ThenInclude(o => o.Product).ThenInclude(o => o.Characteristics) .Include(o => o.OrderStatus) .AsQueryable(); if (command.UserId.HasValue) { query = query.Where(o => o.UserId == command.UserId); } if (command.Id.HasValue) { query = query.Where(o => o.Id == command.Id); } if (!string.IsNullOrEmpty(command.BillingEmail) && command.BillingEmail != "null") { query = query.Where(o => o.Email == command.BillingEmail); } if (!string.IsNullOrEmpty(command.BillingLastName) && command.BillingLastName != "null") { query = query.Where(o => o.LastName == command.BillingLastName); } if (!string.IsNullOrEmpty(command.BillingName) && command.BillingName != "null") { query = query.Where(o => o.Name == command.BillingName); } return(await query.OrderByDescending(o => o.Id).ToPagedListAsync(command)); }