public ActionResult deleteMeasurementFromProduct(long productId, long measurementId)
        {
            DeleteMeasurementModelView deleteMeasurementFromProductMV = new DeleteMeasurementModelView();

            deleteMeasurementFromProductMV.productId     = productId;
            deleteMeasurementFromProductMV.measurementId = measurementId;

            try {
                new core.application.ProductController().deleteMeasurementFromProduct(deleteMeasurementFromProductMV);
                return(NoContent());
            } catch (ResourceNotFoundException e) {
                return(NotFound(new SimpleJSONMessageService(e.Message)));
            } catch (InvalidOperationException e) {
                //*this exception will occur if the last measurement is attempted to be removed*/
                return(BadRequest(new SimpleJSONMessageService(e.Message)));
            } catch (Exception) {
                return(StatusCode(500, new SimpleJSONMessageService(UNEXPECTED_ERROR)));
            }
        }
        /// <summary>
        /// Deletes an instance of Measurement from a Product.
        /// </summary>
        /// <param name="deleteMeasurementModelView">DeleteMeasurementFromProductModelView with the Product's and the Measurement's persistence identifiers.</param>
        /// <exception cref="ResourceNotFoundException">Throw when either the Product or the Measurement could not be found.</exception>
        public void deleteMeasurementFromProduct(DeleteMeasurementModelView deleteMeasurementModelView)
        {
            ProductRepository productRepository = PersistenceContext.repositories().createProductRepository();
            Product           product           = productRepository.find(deleteMeasurementModelView.productId);

            if (product == null)
            {
                throw new ResourceNotFoundException(string.Format(ERROR_UNABLE_TO_FIND_PRODUCT_BY_ID, deleteMeasurementModelView.productId));
            }

            Measurement measurement = product.productMeasurements.Where(pm => pm.measurementId == deleteMeasurementModelView.measurementId)
                                      .Select(pm => pm.measurement).SingleOrDefault();

            if (measurement == null)
            {
                throw new ResourceNotFoundException(string.Format(ERROR_UNABLE_TO_FIND_MEASUREMENT_BY_ID, deleteMeasurementModelView.measurementId));
            }

            product.removeMeasurement(measurement);

            productRepository.update(product);
        }