void SaveDocument(IDocumentInfo documentInfo, bool checkModificationTime) { long itemId = ParseDocumentIdFromEditor(documentInfo.DocumentId); Item docItem = DataService.FindItemById(itemId); if (docItem == null || checkModificationTime && documentInfo.LastModifyTime < docItem.LastWriteTime) { return; } byte[] content = null; if (IsRichEditDocument(docItem)) { RichEditDocumentInfo richEditDocument = (RichEditDocumentInfo)documentInfo; content = richEditDocument.SaveCopy(RichEditDocumentManager.GetFormat(docItem)); } else if (IsSpreadsheetDocument(docItem)) { SpreadsheetDocumentInfo spreadsheetDocument = (SpreadsheetDocumentInfo)documentInfo; content = spreadsheetDocument.SaveCopy(SpreadsheetDocumentManager.GetFormat(docItem)); } else { throw new Exception("Incorrect document format."); } docItem.UpdateContent(content); DataService.SaveChanges(); }
public DocumentService(DocumentsApp app) : base(app) { RichEditDocumentManager = new RichEditDocumentManager(app); SpreadsheetDocumentManager = new SpreadsheetDocumentManager(app); Managers = new List <DocumentManagerBase>(); Managers.Add(RichEditDocumentManager); Managers.Add(SpreadsheetDocumentManager); Managers.Add(new UnsupportedDocumentManager(app)); LockedDocumentRegistry = new ConcurrentDictionary <long, User>(); }
public DevExpress.XtraRichEdit.DocumentFormat GetRichEditDocumentFormat(Item document) { return(RichEditDocumentManager.GetFormat(document)); }
public bool IsRichEditDocument(Item documentItem) { return(RichEditDocumentManager.CanProcess(documentItem)); }