/// <summary> /// Adds a Measurement to a Product. /// </summary> /// <param name="addMeasurementToProductMV">AddMeasurementToProductModelView containing the data of the Measurement instance being added.</param> /// <returns>GetProductModelView with updated Product information.</returns> /// <exception cref="ResourceNotFoundException">Thrown when the Product could not be found.</exception> public GetProductModelView addMeasurementToProduct(AddMeasurementModelView addMeasurementToProductMV) { ProductRepository productRepository = PersistenceContext.repositories().createProductRepository(); Product product = PersistenceContext.repositories().createProductRepository().find(addMeasurementToProductMV.productId); if (product == null) { throw new ResourceNotFoundException(string.Format(ERROR_UNABLE_TO_FIND_PRODUCT_BY_ID, addMeasurementToProductMV.productId)); } Measurement measurement = MeasurementModelViewService.fromModelView(addMeasurementToProductMV); product.addMeasurement(measurement); product = productRepository.update(product); return(ProductModelViewService.fromEntity(product)); }
public ActionResult addMeasurementToProduct(long productId, [FromBody] AddMeasurementModelView measurementModelView) { if (measurementModelView == null) { return(BadRequest(new SimpleJSONMessageService(INVALID_MEASUREMENT_DATA))); } measurementModelView.productId = productId; try { GetProductModelView productModelView = new core.application.ProductController().addMeasurementToProduct(measurementModelView); return(Created(Request.Path, productModelView)); } catch (ResourceNotFoundException e) { return(NotFound(new SimpleJSONMessageService(e.Message))); } catch (ArgumentException e) { return(BadRequest(new SimpleJSONMessageService(e.Message))); } catch (Exception) { return(StatusCode(500, new SimpleJSONMessageService(UNEXPECTED_ERROR))); } }