public Document CreateNewDocument(string folderId, string title, string content, bool createDefaultDirectory) { try { return(NocsService.CreateNewDocument(folderId, title, content, createDefaultDirectory)); } catch (Exception ex) { var result = new SyncResult { Job = new SyncJob { Title = title, Type = SyncJobType.Save }, ContentUpdated = false, Error = ex.Message, Document = new Document { Content = content, Title = title } }; // let's notify listeners ErrorWhileSyncing(result); return(null); } }
public Document SaveDocument(Document document) { try { return(NocsService.SaveDocument(document)); } catch (Exception ex) { var result = new SyncResult { Job = new SyncJob { Title = document.Title, Type = SyncJobType.Save }, ContentUpdated = false, Error = ex.Message, Document = document }; // let's notify listeners ErrorWhileSyncing(result); return(null); } }
private static void BgWorkerDoWork(object sender, DoWorkEventArgs e) { if (e.Argument == null) { Debug.WriteLine("Synchronizer: BgWorkerDoWork - given syncjob (e.Argument) is null"); return; } SyncResult result = null; var job = (SyncJob)e.Argument; try { switch (job.Type) { case SyncJobType.CheckForChanges: { var updatedDocument = NocsService.GetUpdatedDocument(job.SyncDocument); // GetUpdatedDocument won't return null if the document has been updated since last check if (updatedDocument != null) { // the document has been updated, let's fetch the updated content result = new SyncResult { ContentUpdated = true, TimeUpdated = DateTime.Now, Job = job, Document = NocsService.GetDocumentContent(updatedDocument) }; } else { // the document hasn't been updated, let's generate a null result result = new SyncResult { ContentUpdated = false, Job = job }; } break; } case SyncJobType.UpdateAllEntries: { NocsService.UpdateAllEntries(); result = new SyncResult { ContentUpdated = false, // this is only to be used with single documents Job = job, }; break; } } e.Result = result; } catch (Exception ex) { var errorMessage = ex.Message; if (job.Type == SyncJobType.CheckForChanges) { Trace.WriteLine(string.Format("{0} - Synchronizer: error while checking if {1} is different in Google Docs: {2}", DateTime.Now, job.SyncDocument.Title, ex.Message)); } else if (job.Type == SyncJobType.UpdateAllEntries) { Trace.WriteLine(string.Format("{0} - Synchronizer: error while fetching all documents: {1}", DateTime.Now, ex.Message)); } result = new SyncResult { ContentUpdated = false, Error = errorMessage, Job = job }; e.Result = result; } }