Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        public async Task ShouldListOrders()
        {
            // Arrange
            var listOrdersCommand = new ListOrdersCommand(1);

            // Act
            var result = await _listOrdersQueryHandler.Handle(listOrdersCommand);

            // Assert
            Assert.IsNotNull(result?.Object);
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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));
        }