protected override ActivityExecutionStatus Execute(ActivityExecutionContext context) { // Create an Outlook Application object. Outlook.Application outlookApp = new Outlook.Application(); // Create a new TaskItem. Outlook.NoteItem newNote = (Outlook.NoteItem)outlookApp.CreateItem(Outlook.OlItemType.olNoteItem); // Configure the task at hand and save it. if (this.Parent.Parent is ParallelActivity) { newNote.Body = (this.Parent.Parent.Parent.Activities[1] as DummyActivity).TitleProperty; if ((this.Parent.Parent.Parent.Activities[1] as DummyActivity).TitleProperty != "") { MessageBox.Show("Creating Outlook Note"); newNote.Save(); } } else if (this.Parent.Parent is SequentialWorkflowActivity) { newNote.Body = (this.Parent.Parent.Activities[1] as DummyActivity).TitleProperty; if ((this.Parent.Parent.Activities[1] as DummyActivity).TitleProperty != "") { MessageBox.Show("Creating Outlook Note"); newNote.Save(); } } return(ActivityExecutionStatus.Closed); }
private void CreateOutlookNoteAndSyncToGoogle(out Outlook.NoteItem outlookNote, out NoteMatch match) { //ToDo: Check for eache SyncOption and SyncDelete combination sync.SyncOption = SyncOption.MergeOutlookWins; sync.SyncDelete = true; // create new contact to sync // create new note to sync outlookNote = Synchronizer.CreateOutlookNoteItem(Synchronizer.SyncNotesFolder); outlookNote.Body = body; outlookNote.Categories = groupName; outlookNote.Save(); //Outlook note should now have a group Assert.AreEqual(groupName, outlookNote.Categories); Document googleNote = new Document(); googleNote.Type = Document.DocumentType.Document; sync.UpdateNote(outlookNote, googleNote); match = new NoteMatch(outlookNote, googleNote); //save Notes sync.SaveNote(match); for (int i = 0; match.AsyncUpdateCompleted.HasValue && !match.AsyncUpdateCompleted.Value && i < 100; i++) { Thread.Sleep(1000);//DoNothing, until the Async Update is complete, but only wait maximum 10 seconds } //load the same note from google. sync.MatchNotes(); match = FindMatch(outlookNote); // google contact should now have the same group Assert.IsNotNull(match.GoogleNote.ParentFolders); //Assert.Greater(match.GoogleNote.ParentFolders.Count, 0); Assert.AreEqual(2, match.GoogleNote.ParentFolders.Count); //2 because Notes folder and the category folder Document categoryFolder = null; foreach (string uri in match.GoogleNote.ParentFolders) { Document folder = sync.GetGoogleFolder(null, null, uri); if (folder.Title == groupName) { categoryFolder = folder; break; } } Assert.IsNotNull(categoryFolder); }
public void TestSyncDeletedOulook() { //ToDo: Check for eache SyncOption and SyncDelete combination sync.SyncOption = SyncOption.MergeOutlookWins; sync.SyncDelete = true; // create new Note to sync Outlook.NoteItem outlookNote = Synchronizer.CreateOutlookNoteItem(Synchronizer.SyncNotesFolder); outlookNote.Body = body; outlookNote.Save(); Document googleNote = new Document(); googleNote.Type = Document.DocumentType.Document; sync.UpdateNote(outlookNote, googleNote); NoteMatch match = new NoteMatch(outlookNote, googleNote); //save Notes sync.SaveNote(match); for (int i = 0; match.AsyncUpdateCompleted.HasValue && !match.AsyncUpdateCompleted.Value && i < 10; i++) { Thread.Sleep(1000);//DoNothing, until the Async Update is complete, but only wait maximum 10 seconds } // delete outlook Note outlookNote.Delete(); Thread.Sleep(10000); // sync sync.MatchNotes(); NotesMatcher.SyncNotes(sync); // find match match = FindMatch(match.GoogleNote); // delete sync.SaveNote(match); // sync sync.MatchNotes(); NotesMatcher.SyncNotes(sync); // check if google Note still exists match = FindMatch(match.GoogleNote); Assert.IsNull(match); }
/// <summary> /// Create a new note /// </summary> /// <returns>Outlook Note item</returns> public static Outlook.NoteItem NewNote(string body = "") { Outlook.Application oApp = new Outlook.Application(); // Create a new note item. Outlook.NoteItem oNote = (Outlook.NoteItem)oApp.CreateItem(Outlook.OlItemType.olNoteItem); // Set the note body if (body != "") { oNote.Body = body; } else { oNote.Body = ConfigurationManager.AppSettings["Note_body"].ToString(); } oNote.Save(); return(oNote); }
public void TestSync() { // create new note to sync Outlook.NoteItem outlookNote = Synchronizer.CreateOutlookNoteItem(Synchronizer.SyncNotesFolder); //outlookNote.Subject = name; outlookNote.Body = body; outlookNote.Save(); sync.SyncOption = SyncOption.OutlookToGoogleOnly; Document googleNote = new Document(); googleNote.Type = Document.DocumentType.Document; sync.UpdateNote(outlookNote, googleNote); NoteMatch match = new NoteMatch(outlookNote, googleNote); //save Note to google. sync.SaveGoogleNote(match); for (int i = 0; match.AsyncUpdateCompleted.HasValue && !match.AsyncUpdateCompleted.Value && i < 10; i++) { Thread.Sleep(1000);//DoNothing, until the Async Update is complete, but only wait maximum 10 seconds } googleNote = null; sync.SyncOption = SyncOption.GoogleToOutlookOnly; //load the same Note from google. sync.MatchNotes(); match = FindMatch(match.GoogleNote); //NotesMatcher.SyncNote(match, sync); Outlook.NoteItem recreatedOutlookNote = Synchronizer.CreateOutlookNoteItem(Synchronizer.SyncNotesFolder); sync.UpdateNote(match.GoogleNote, recreatedOutlookNote); // match recreatedOutlookNote with outlookNote //Assert.AreEqual(outlookNote.Subject, recreatedOutlookNote.Subject); Assert.AreEqual(outlookNote.Body, recreatedOutlookNote.Body); DeleteTestNotes(match); }
public void TestResetMatches() { sync.SyncOption = SyncOption.MergeOutlookWins; // create new Note to sync Outlook.NoteItem outlookNote = Synchronizer.CreateOutlookNoteItem(Synchronizer.SyncNotesFolder); outlookNote.Body = body; outlookNote.Save(); Document googleNote = new Document(); googleNote.Type = Document.DocumentType.Document; sync.UpdateNote(outlookNote, googleNote); NoteMatch match = new NoteMatch(outlookNote, googleNote); //save Note to google. sync.SaveNote(match); for (int i = 0; match.AsyncUpdateCompleted.HasValue && !match.AsyncUpdateCompleted.Value && i < 10; i++) { Thread.Sleep(1000);//DoNothing, until the Async Update is complete, but only wait maximum 10 seconds } //load the same Note from google. sync.MatchNotes(); match = FindMatch(outlookNote); NotesMatcher.SyncNote(match, sync); // delete outlook Note outlookNote.Delete(); match.OutlookNote = null; //load the same Note from google sync.MatchNotes(); match = FindMatch(match.GoogleNote); NotesMatcher.SyncNote(match, sync); Assert.IsNull(match.OutlookNote); // reset matches System.IO.File.Delete(NotePropertiesUtils.GetFileName(match.GoogleNote.Id, sync.SyncProfile)); //Not, because NULL: sync.ResetMatch(match.OutlookNote.GetOriginalItemFromOutlook(sync)); // load same Note match sync.MatchNotes(); match = FindMatch(match.GoogleNote); NotesMatcher.SyncNote(match, sync); // google Note should still be present and OutlookNote should be filled Assert.IsNotNull(match.GoogleNote); Assert.IsNotNull(match.OutlookNote); DeleteTestNotes(); // create new Note to sync outlookNote = Synchronizer.CreateOutlookNoteItem(Synchronizer.SyncNotesFolder); outlookNote.Body = body; outlookNote.Save(); // same test for delete google Note... googleNote = new Document(); googleNote.Type = Document.DocumentType.Document; sync.UpdateNote(outlookNote, googleNote); match = new NoteMatch(outlookNote, googleNote); //save Note to google. sync.SaveNote(match); for (int i = 0; match.AsyncUpdateCompleted.HasValue && !match.AsyncUpdateCompleted.Value && i < 10; i++) { Thread.Sleep(1000);//DoNothing, until the Async Update is complete, but only wait maximum 10 seconds } //load the same Note from google. sync.MatchNotes(); match = FindMatch(outlookNote); NotesMatcher.SyncNote(match, sync); // delete google Note //sync.DocumentsRequest.Delete(match.GoogleNote); DeleteTestNote(match.GoogleNote); match.GoogleNote = null; //load the same Note from google. sync.MatchNotes(); match = FindMatch(outlookNote); NotesMatcher.SyncNote(match, sync); Assert.IsNull(match.GoogleNote); // reset matches //Not, because null: sync.ResetMatch(match.GoogleNote); sync.ResetMatch(match.OutlookNote); // load same Note match sync.MatchNotes(); match = FindMatch(outlookNote); NotesMatcher.SyncNote(match, sync); // Outlook Note should still be present and GoogleNote should be filled Assert.IsNotNull(match.OutlookNote); Assert.IsNotNull(match.GoogleNote); System.IO.File.Delete(NotePropertiesUtils.GetFileName(outlookNote.EntryID, sync.SyncProfile)); outlookNote.Delete(); }
public void TestSyncDeletedGoogle() { //ToDo: Check for eache SyncOption and SyncDelete combination sync.SyncOption = SyncOption.MergeOutlookWins; sync.SyncDelete = true; // create new Note to sync Outlook.NoteItem outlookNote = Synchronizer.CreateOutlookNoteItem(Synchronizer.SyncNotesFolder); outlookNote.Body = body; outlookNote.Save(); Document googleNote = new Document(); googleNote.Type = Document.DocumentType.Document; sync.UpdateNote(outlookNote, googleNote); NoteMatch match = new NoteMatch(outlookNote, googleNote); //save Notes sync.SaveNote(match); for (int i = 0; match.AsyncUpdateCompleted.HasValue && !match.AsyncUpdateCompleted.Value && i < 100; i++) { Thread.Sleep(1000);//DoNothing, until the Async Update is complete, but only wait maximum 10 seconds } Document deletedNote = sync.LoadGoogleNotes(null, match.GoogleNote.DocumentEntry.Id); Assert.IsNotNull(deletedNote); AtomId deletedNoteAtomId = deletedNote.DocumentEntry.Id; string deletedNoteId = deletedNote.Id; Assert.IsTrue(File.Exists(NotePropertiesUtils.GetFileName(deletedNoteId, sync.SyncProfile))); // delete google Note sync.DocumentsRequest.Delete(new Uri(Google.GData.Documents.DocumentsListQuery.documentsBaseUri + "/" + deletedNote.ResourceId), deletedNote.ETag); // sync sync.MatchNotes(); match = FindMatch(outlookNote); NotesMatcher.SyncNote(match, sync); string id = outlookNote.EntryID; // delete sync.SaveNote(match); // sync sync.MatchNotes(); NotesMatcher.SyncNotes(sync); match = FindMatch(id); // check if outlook Note still exists Assert.IsNull(match); deletedNote = sync.LoadGoogleNotes(null, deletedNoteAtomId); Assert.IsNull(deletedNote); Assert.IsFalse(File.Exists(NotePropertiesUtils.GetFileName(deletedNoteId, sync.SyncProfile))); Assert.IsFalse(File.Exists(NotePropertiesUtils.GetFileName(id, sync.SyncProfile))); DeleteTestNotes(match); }