public IActionResult UpdateIdeation(int id, NewIdeationDto updatedIdeationValues) { try { _unitOfWorkManager.StartUnitOfWork(); Ideation updatedIdeation = _ideationManager.ChangeIdeation( id, updatedIdeationValues.Title, updatedIdeationValues.ProjectPhaseId); _unitOfWorkManager.EndUnitOfWork(); if (updatedIdeation == null) { return(BadRequest("Something went wrong while updating the ideation.")); } return(Ok(_mapper.Map <IdeationDto>(updatedIdeation))); } catch (ValidationException ve) { return(UnprocessableEntity($"Invalid input data: {ve.ValidationResult.ErrorMessage}")); } catch (ArgumentException e) { switch (e.ParamName) { case "id": return(NotFound(e.Message)); case "projectPhaseId": return(UnprocessableEntity(e.Message)); default: return(BadRequest(e.Message)); } } }