public async Task <ActionResult <IContentBlockViewModel> > AttachDataBlock( Guid releaseId, Guid contentSectionId, ContentBlockAttachRequest request) { return(await _contentService .AttachDataBlock(releaseId, contentSectionId, request) .HandleFailuresOrOk()); }
public Task <Either <ActionResult, IContentBlockViewModel> > AttachDataBlock(Guid releaseId, Guid contentSectionId, ContentBlockAttachRequest request) { return(CheckContentSectionExists(releaseId, contentSectionId) .OnSuccess(CheckCanUpdateRelease) .OnSuccess(async tuple => { var(_, section) = tuple; var blockToAttach = _context.ContentBlocks.FirstOrDefault(block => block.Id == request.ContentBlockId); if (blockToAttach == null) { return NotFound <IContentBlockViewModel>(); } if (!(blockToAttach is DataBlock dataBlock)) { return ValidationActionResult(IncorrectContentBlockTypeForAttach); } if (dataBlock.ContentSectionId.HasValue) { return ValidationActionResult(ContentBlockAlreadyAttachedToContentSection); } return await AddContentBlockToContentSectionAndSave(request.Order, section, dataBlock); })); }