Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        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;
            }
        }