public Order AddProductInOrder(int idOrder, AddOrderToProductModel item) { if (item == null) { throw new AppValidationException(MessageConstants.ADD_PRODUCT_MODEL_IS_EMPTY); } var order = GetOrderFromRepository(idOrder); var product = GetProduct(item.SKU); if (product.PriceType == PriceType.PerEach && (item.QTY - Math.Floor(item.QTY)) != 0) { throw new AppValidationException(MessageConstants.FRACTIONAL_QTY_NOT_AVALIABLE_IN_ORDER_FOR_PRODUCT_WITH_LB_PRICE); } var orderToProduct = order.OrderToProducts.FirstOrDefault(p => p.IdProduct == product.Id); if (orderToProduct == null) { orderToProduct = new OrderToProduct() { IdProduct = product.Id, }; order.OrderToProducts.Add(orderToProduct); } orderToProduct.QTY += item.QTY; order = GetRecalculatedOrder(order); var result = _orderRepository.Update(order); return(result ? order : null); }
public Result <Order> AddProductInOrder(int id, [FromBody] AddOrderToProductModel model) { return(_orderService.AddProductInOrder(id, model)); }