public static async Task CreateReadUpdateDeleteMessageAsync(ExchangeService exchangeService) { string folderName = "AsyncTestCrudItems"; TestHelpers.DeleteFolderIfExist( folderName, exchangeService, WellKnownFolderName.MsgFolderRoot); MailFolder mailFolder = TestHelpers.CreateFolder( folderName, exchangeService, WellKnownFolderName.MsgFolderRoot); for (int i = 0; i < 10; i++) { Message msg = new Message(exchangeService); msg.Subject = Guid.NewGuid().ToString(); msg.Body = new ItemBody() { ContentType = BodyType.HTML, Content = $"body {Guid.NewGuid().ToString()}" }; await msg.SaveAsync(mailFolder.FolderId); } FindItemsResults <Item> items = await exchangeService.FindItemsAsync(mailFolder.FolderId, new MessageView(12)); Assert.AreEqual( 10, items.TotalCount); foreach (Item item in items) { if (item is Message msg) { msg.Subject = $"Changed subject - {msg.Subject}"; await msg.UpdateAsync(); } } items = await exchangeService.FindItemsAsync(mailFolder.FolderId, new MessageView(12)); foreach (Item item in items) { if (item is Message msg) { Assert.IsTrue( msg.Subject.StartsWith("Changed subject -")); await item.DeleteAsync(); } } }
public async Task Test_MultiThreadTaskExecution() { ExchangeService exchangeServiceMailboxA = this.GetExchangeService(AppConfig.MailboxA); var itemsFromInbox1MailboxA = exchangeServiceMailboxA.FindItemsAsync( new FolderId(WellKnownFolderName.Inbox), new MessageView(20)); var itemsFromSentMailboxA = exchangeServiceMailboxA.FindItemsAsync( new FolderId(WellKnownFolderName.SentItems), new MessageView(20)); var itemsFromInbox2MailboxA = exchangeServiceMailboxA.FindItemsAsync( new FolderId(WellKnownFolderName.Inbox), new MessageView(20)); ExchangeService exchangeServiceMailboxB = this.GetExchangeService(AppConfig.MailboxB); var itemsFromInbox1MailboxB = exchangeServiceMailboxB.FindItemsAsync( new FolderId(WellKnownFolderName.Inbox), new MessageView(20)); var itemsFromSentMailboxB = exchangeServiceMailboxB.FindItemsAsync( new FolderId(WellKnownFolderName.SentItems), new MessageView(20)); var itemsFromInbox2MailboxB = exchangeServiceMailboxB.FindItemsAsync( new FolderId(WellKnownFolderName.Inbox), new MessageView(20)); var createInferenceClassificationMailboxA = exchangeServiceMailboxA.CreateInferenceClassificationOverrideAsync(new InferenceClassificationOverride() { ClassifyAs = InferenceClassificationType.Focused, SenderEmailAddress = new EmailAddress() { Address = "*****@*****.**" } }); var createInferenceClassificationMailboxB = exchangeServiceMailboxA.CreateInferenceClassificationOverrideAsync(new InferenceClassificationOverride() { ClassifyAs = InferenceClassificationType.Focused, SenderEmailAddress = new EmailAddress() { Address = "*****@*****.**" } }); foreach (MailFolder folder in await exchangeServiceMailboxA.FindFoldersAsync(new FolderId(WellKnownFolderName.MsgFolderRoot), null, new FolderView(10))) { Assert.AreEqual( AppConfig.MailboxA, folder.MailboxId.Id); } foreach (Item item in await itemsFromInbox1MailboxA) { if (item is Message msg) { Assert.AreEqual( AppConfig.MailboxA, msg.MailboxId.Id); } } foreach (Item item in await itemsFromInbox1MailboxB) { if (item is Message msg) { Assert.AreEqual( AppConfig.MailboxB, msg.MailboxId.Id); } } InferenceClassificationOverride inferenceClassificationOverrideA = await createInferenceClassificationMailboxA; inferenceClassificationOverrideA.SenderEmailAddress = new EmailAddress() { Address = "*****@*****.**" }; await inferenceClassificationOverrideA.UpdateAsync(); Assert.AreEqual( "*****@*****.**", inferenceClassificationOverrideA.SenderEmailAddress.Address); foreach (MailFolder folder in await exchangeServiceMailboxB.FindFoldersAsync(new FolderId(WellKnownFolderName.MsgFolderRoot), null, new FolderView(10))) { Assert.AreEqual( AppConfig.MailboxB, folder.MailboxId.Id); } foreach (Item item in await itemsFromInbox2MailboxA) { if (item is Message msg) { Assert.AreEqual( AppConfig.MailboxA, msg.MailboxId.Id); } } InferenceClassificationOverride inferenceClassificationOverrideB = await createInferenceClassificationMailboxB; inferenceClassificationOverrideB.ClassifyAs = InferenceClassificationType.Other; await inferenceClassificationOverrideB.UpdateAsync(); Assert.AreEqual( InferenceClassificationType.Other, inferenceClassificationOverrideB.ClassifyAs); foreach (Item item in await itemsFromSentMailboxB) { if (item is Message msg) { Assert.AreEqual( AppConfig.MailboxB, msg.MailboxId.Id); } } foreach (Item item in await itemsFromSentMailboxA) { if (item is Message msg) { Assert.AreEqual( AppConfig.MailboxA, msg.MailboxId.Id); } } foreach (Item item in await itemsFromInbox2MailboxB) { if (item is Message msg) { Assert.AreEqual( AppConfig.MailboxB, msg.MailboxId.Id); } } }