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)); } } }
public async Task <IActionResult> PostNewIdeation([FromForm] NewIdeationDto ideation, [FromRoute] string orgId) { if (ideation.Texts.IsNullOrEmpty() && ideation.Images.IsNullOrEmpty()) { return(BadRequest("Either images or text content should be provided.")); } try { // UoW is started here to make sure the request either fails or succeeds fully _unitOfWorkManager.StartUnitOfWork(); Ideation createdIdeation = _ideationManager.AddIdeation( ideation.Title, ideation.ProjectPhaseId); foreach (var video in ideation.Videos) { string imgLocation = await _fileService.ConvertFileToLocation(video); _ideationManager.AddFieldToIdeation(FieldType.Video, imgLocation, createdIdeation.IdeationId); } foreach (var image in ideation.Images) { string imgLocation = await _fileService.ConvertFileToLocation(image); _ideationManager.AddFieldToIdeation(FieldType.Picture, imgLocation, createdIdeation.IdeationId); } foreach (var textfield in ideation.Texts) { _ideationManager.AddFieldToIdeation(FieldType.Text, textfield, createdIdeation.IdeationId); } foreach (var location in ideation.Locations) { _ideationManager.AddFieldToIdeation(FieldType.Location, location, createdIdeation.IdeationId); } foreach (var link in ideation.Links) { _ideationManager.AddFieldToIdeation(FieldType.Link, link, createdIdeation.IdeationId); } _unitOfWorkManager.EndUnitOfWork(); return(CreatedAtAction( "GetIdeation", new { orgId, id = createdIdeation.IdeationId }, _mapper.Map <IdeationDto>(createdIdeation))); } catch (ValidationException ve) { return(UnprocessableEntity($"Invalid input data: {ve.ValidationResult.ErrorMessage}")); } catch (Exception e) { return(BadRequest($"Something went wrong in creating the ideation: {e.Message}.")); } }