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); }
public double CalculateDeliveryCost(CartHelper.CartExamples cartExample, int quantity1, int quantity2, int quantity3) { Cart cart = CartHelper.GetCart(cartExample, quantity1, quantity2, quantity3); return(_deliveryService.CalculateDeliveryCost(cart)); }