public int ReplaceBookmarks([FromBody] DocumentJsonModel documentJsonModel) { var document = _documentService.GetDocument(documentJsonModel.Id); var openDocument = _documentCore.OpenDocument(document.Path); var bookmarkNames = _bookmarkParser.FindBookmarks(openDocument); foreach (var bookmark in documentJsonModel.Bookmarks) { var bookmarkDb = _bookmarkMapper.ToBookmark(bookmark); switch (bookmark.Type) { case 1: bookmarkDb.MessageJson = bookmark.Message; _bookmarkService.EditBookmark(bookmarkDb); _bookmarkParser.ReplaceBookmark( bookmarkNames.Find(name => name.BookmarkData.Key == bookmark.Name).BookmarkData, _textUtil.GetText(bookmark.Message.ToString()), openDocument.MainDocumentPart); break; case 2: bookmarkDb.MessageJson = bookmark.Message.ToString(); _bookmarkService.EditBookmark(bookmarkDb); _bookmarkParser.ReplaceBookmark( bookmarkNames.Find(name => name.BookmarkData.Key == bookmark.Name).BookmarkData, _tableUtil.GetTable(bookmark.Message.ToString()), openDocument.MainDocumentPart); break; default: break; } } _documentCore.CloseDocument(openDocument); return(document.Id); }
public async Task <DocumentJsonModel> UploadFile(IFormFile file) { var filePath = await SaveFileDataAsync(file); var openDocument = _documentCore.OpenDocument(filePath); var customProps = _documentCore.CheckCustomProperty(openDocument.CustomFilePropertiesPart, ParentId); var document = _documentMapper.ToDocument(file.FileName, filePath, ParentId); var documentId = _documentService.CreateDocument(document); if (documentId != ParentId) { _documentCore.CheckIfDocumentExist(openDocument, documentId); } var bookmarkNames = _bookmarkParser.FindBookmarks(openDocument); var bookmarksEntitiesCheck = _bookmarkService.GetAllBookmarksByDocument(documentId).ToList(); if (!bookmarksEntitiesCheck.Any() && bookmarkNames != null) { foreach (var bookmarkName in bookmarkNames) { var bookmark = _bookmarkMapper.ToBookmarkFromName(bookmarkName, documentId); _bookmarkService.CreateBookmark(bookmark); } } var bookmarksEntities = _bookmarkService.GetAllBookmarksByDocument(documentId).ToList(); DocumentJsonModel documentJsonModel = _documentMapper.ToDocumentJsonModelByType(bookmarksEntities, documentId, document); _documentCore.CloseDocument(openDocument); return(documentJsonModel); }