public IActionResult UpdateIdea(int id, NewIdeaDto updatedValues) { try { _unitOfWorkManager.StartUnitOfWork(); Idea updatedIdea = _ideationManager.ChangeIdea( id, updatedValues.Title, updatedValues.IdeationId); _unitOfWorkManager.EndUnitOfWork(); if (updatedIdea == null) { return(BadRequest("Something went wrong while updating the idea.")); } return(Ok(_mapper.Map <IdeaMinDto>(updatedIdea))); } catch (ValidationException ve) { return(UnprocessableEntity($"Invalid input data: {ve.ValidationResult.ErrorMessage}")); } catch (ArgumentException e) { switch (e.ParamName) { case "id": return(NotFound(e.Message)); case "ideationId": return(UnprocessableEntity(e.Message)); default: return(BadRequest(e.Message)); } } }