public IActionResult GetSummaryForUserOptionProductSelection(CarOrderDetails carOrderDetails) { if (!ModelState.IsValid) { return(BadRequest(new ApiBadRequestResponse(ModelState))); } if (carOrderDetails == null) { return(BadRequest(new ApiResponse(400, "The order details are missing."))); } var order = _orderService.AddOrder(carOrderDetails); return(Ok(new ApiOkResponse(order))); }
public CarOrderDetails AddOrder(CarOrderDetails carOrderDetails) { var carModelProduct = _productRepository.GetByEAN(carOrderDetails.CarModelEAN); if (carModelProduct == null) { throw new Exception("The product is unknown."); } var order = new Order(carOrderDetails.Code); order.AddPosition(new OrderPosition( carModelProduct.EAN, carModelProduct.NetPrice, carModelProduct.VATRate, "Basis-Modell: " + carModelProduct.Name)); foreach (var(optionId, carModelOptionProduct) in carOrderDetails.CarOptionProducts) { var option = _productOptionRepository.GetById(optionId, carModelProduct.Id); if (option == null) { throw new Exception("The option with ID " + optionId + " is unknown."); } var optionProduct = _productRepository.GetByEAN(carModelOptionProduct.EAN); if (optionProduct == null) { throw new Exception("The product with EAN " + carModelOptionProduct.EAN + " is unknown."); } order.AddPosition(new OrderPosition( optionProduct.EAN, optionProduct.NetPrice, optionProduct.VATRate, "Option " + option.Name + ": " + optionProduct.Name)); } order = _orderRepository.AddOrder(order); carOrderDetails.OrderNo = order.Id.ToString(); return(carOrderDetails); }