public ActionResult updateCategory(long id, [FromBody] UpdateProductCategoryModelView modelView) { try { GetProductCategoryModelView updatedCategoryModelView = new core.application.ProductCategoryController().updateProductCategory(id, modelView); return(Ok(updatedCategoryModelView)); } catch (ArgumentException e) { return(BadRequest(new { error = e.Message })); } }
/// <summary> /// Updates a ProductCategory with a given database identifier with the data in given ModelView. /// </summary> /// <param name="id">ProductCategory's database identifier.</param> /// <param name="modelView">ModelView containing the data being updated.</param> /// <returns>A ModelView with the updated ProductCategory data.</returns> public GetProductCategoryModelView updateProductCategory(long id, UpdateProductCategoryModelView modelView) { ProductCategoryRepository repository = PersistenceContext.repositories().createProductCategoryRepository(); ProductCategory category = repository.find(id); string newName = modelView.name; if (!category.changeName(newName)) { throw new ArgumentException(ERROR_INVALID_NAME); } category = repository.update(category); if (category == null) { throw new ArgumentException(ERROR_DUPLICATE_NAME); } return(ProductCategoryModelViewService.fromEntity(category)); }