public Task <Either <ActionResult, IContentBlockViewModel> > UpdateTextBasedContentBlock( Guid methodologyVersionId, Guid contentSectionId, Guid contentBlockId, ContentBlockUpdateRequest request) { return(CheckContentSectionExists(methodologyVersionId, contentSectionId) .OnSuccess(CheckCanUpdateMethodology) .OnSuccess(EnsureContentBlockListNotNull) .OnSuccess(async tuple => { var(methodology, section) = tuple; var blockToUpdate = section.Content.Find(block => block.Id == contentBlockId); if (blockToUpdate == null) { return NotFound <IContentBlockViewModel>(); } return blockToUpdate switch { HtmlBlock htmlBlock => await UpdateHtmlBlock(htmlBlock, request.Body, methodology), _ => throw new ArgumentOutOfRangeException() }; })); }
public async Task <ActionResult <IContentBlockViewModel> > UpdateTextBasedContentBlock( Guid releaseId, Guid contentSectionId, Guid contentBlockId, ContentBlockUpdateRequest request) { return(await _contentService .UpdateTextBasedContentBlock(releaseId, contentSectionId, contentBlockId, request) .HandleFailuresOrOk()); }
public Task <Either <ActionResult, IContentBlockViewModel> > UpdateTextBasedContentBlock( Guid releaseId, Guid contentSectionId, Guid contentBlockId, ContentBlockUpdateRequest request) { return(CheckContentSectionExists(releaseId, contentSectionId) .OnSuccess(CheckCanUpdateRelease) .OnSuccess(async tuple => { var(_, section) = tuple; var blockToUpdate = section.Content.Find(block => block.Id == contentBlockId); if (blockToUpdate == null) { return NotFound <IContentBlockViewModel>(); } return blockToUpdate switch { MarkDownBlock markDownBlock => await UpdateMarkDownBlock(markDownBlock, request.Body), HtmlBlock htmlBlock => await UpdateHtmlBlock(htmlBlock, request.Body), DataBlock _ => ValidationActionResult(IncorrectContentBlockTypeForUpdate), _ => throw new ArgumentOutOfRangeException() }; })); }