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); } } }