Пример #1
0
        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);
        }
Пример #2
0
        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);
        }