public async Task <OrderDto> Handle(GetOrderByIdQuery query, CancellationToken cancellationToken)
        {
            var order = await _dbContext.Orders
                        .AsNoTracking()
                        .Include(x => x.Items).ThenInclude(x => x.Product)
                        .FirstOrDefaultAsync(x => x.Id == query.Id);

            if (order == null)
            {
                throw new EntityNotFoundException();
            }

            var dto          = _mapper.Map <OrderDto>(order);
            var totalWeight  = order.Items.Sum(x => x.Product.Weight);
            var deliveryCost = _deliveryService.CalculateDeliveryCost(totalWeight);

            dto.Total = order.GetTotal() + deliveryCost;

            return(dto);
        }
コード例 #2
0
        public double CalculateDeliveryCost(CartHelper.CartExamples cartExample, int quantity1, int quantity2, int quantity3)
        {
            Cart cart = CartHelper.GetCart(cartExample, quantity1, quantity2, quantity3);

            return(_deliveryService.CalculateDeliveryCost(cart));
        }