public IActionResult SavePageForDocumentToProcess([FromBody] SaveBitmapForTemplatePageCanvasDefinition pageCanvas) { try { _savePageCanvasBitmapHandler.Handle(pageCanvas); return(new JsonResult(new FileStorageRequestResult { Success = true })); } catch { return(new JsonResult(new FileStorageRequestResult { Success = false })); } }
public OperationResult <TemplateDefinition> Handle(AddTemplateDefinitionPage command) { if (command == null) { throw new ArgumentNullException(nameof(command)); } using (var context = new TemplatingContext(_persistenceConfiguration)) { var templateFromDb = context.Templates .Include(t => t.DefinedPages) .SingleOrDefault(t => t.Id == command.TemplateId); var template = templateFromDb?.AsDomainModel(); if (template == null) { return(OperationResult <TemplateDefinition> .Failure( new ObjectNotFoundById(typeof(TemplateDefinition), command.TemplateId))); } var templatePage = new TemplatePageDefinition((int)command.PageNumber); using (var bitmap = command.ReferenceCanvas.FileData.AsBitmap()) { var modificationResult = templatePage .ModifyReferenceCanvas(new Rectangle(0, 0, bitmap.Width, bitmap.Height)); if (!modificationResult.Successful) { return(OperationResult <TemplateDefinition> .Failure(modificationResult.Details)); } } var addPageResult = template.AddPageDefinition(templatePage); if (!addPageResult.Successful) { return(OperationResult <TemplateDefinition> .Failure(addPageResult.Details)); } templateFromDb.DefinedPages.Add(templatePage.AsPersistenceModel()); context.Update(templateFromDb); context.SaveChanges(); var saveBitmapCommand = new SaveBitmapForTemplatePageCanvasDefinition { FileData = command.ReferenceCanvas.FileData, FileLabel = command.ReferenceCanvas.FileLabel, FileType = command.ReferenceCanvas.FileType, TemplatePageId = templatePage.Id, TemplateId = template.Id }; var savedCanvas = _saveCanvasHandler.Handle(saveBitmapCommand); if (!savedCanvas.Success) { return(OperationResult <TemplateDefinition> .Failure(new FileStorageSaveFailed(saveBitmapCommand))); } return(OperationResult <TemplateDefinition> .Success(template)); } }