/// <summary>
        /// CRUD operations for inference classification - Async
        /// </summary>
        /// <param name="exchangeService"></param>
        public static async System.Threading.Tasks.Task CreateReadUpdateDeleteInferenceClassificationOverrideAsync(ExchangeService exchangeService)
        {
            // Cleanup.
            List <InferenceClassificationOverride> overrides = await exchangeService.GetInferenceClassificationOverridesAsync();

            foreach (InferenceClassificationOverride classificationOverride in overrides)
            {
                await classificationOverride.DeleteAsync();
            }

            InferenceClassificationOverride inferenceClassification = new InferenceClassificationOverride(exchangeService);

            inferenceClassification.ClassifyAs         = InferenceClassificationType.Focused;
            inferenceClassification.SenderEmailAddress = new EmailAddress()
            {
                Address = "*****@*****.**"
            };

            Assert.IsNull(inferenceClassification.Id);
            await inferenceClassification.SaveAsync();

            Assert.IsNotNull(inferenceClassification.Id);

            List <InferenceClassificationOverride> inferenceClassificationOverrides =
                await exchangeService.GetInferenceClassificationOverridesAsync();

            Assert.IsTrue(inferenceClassificationOverrides.Count == 1);
            Assert.AreEqual(
                inferenceClassificationOverrides[0].ClassifyAs,
                inferenceClassification.ClassifyAs);

            Assert.AreEqual(
                inferenceClassificationOverrides[0].SenderEmailAddress.Address,
                inferenceClassification.SenderEmailAddress.Address);

            inferenceClassification.ClassifyAs = InferenceClassificationType.Other;
            await inferenceClassification.UpdateAsync();

            inferenceClassificationOverrides =
                await exchangeService.GetInferenceClassificationOverridesAsync();

            Assert.IsTrue(inferenceClassificationOverrides.Count == 1);
            Assert.AreEqual(
                inferenceClassificationOverrides[0].ClassifyAs,
                InferenceClassificationType.Other);

            await inferenceClassification.DeleteAsync();

            Assert.IsNull(inferenceClassification.Id);
            Assert.IsNull(inferenceClassification.SenderEmailAddress);
        }
        /// <summary>
        /// CRUD operations for inference classification.
        /// </summary>
        /// <param name="exchangeService"></param>
        public static void CreateReadUpdateDeleteInferenceClassificationOverride(ExchangeService exchangeService)
        {
            // Cleanup.
            List <InferenceClassificationOverride> overrides = exchangeService.GetInferenceClassificationOverrides();

            foreach (InferenceClassificationOverride classificationOverride in overrides)
            {
                classificationOverride.Delete();
            }

            InferenceClassificationOverride inferenceClassification = new InferenceClassificationOverride(exchangeService);

            inferenceClassification.ClassifyAs         = InferenceClassificationType.Focused;
            inferenceClassification.SenderEmailAddress = new EmailAddress()
            {
                Address = "*****@*****.**"
            };

            Assert.IsNull(inferenceClassification.Id);
            inferenceClassification.Save();
            Assert.IsNotNull(inferenceClassification.Id);

            List <InferenceClassificationOverride> inferenceClassificationOverrides =
                exchangeService.GetInferenceClassificationOverrides();

            Assert.IsTrue(inferenceClassificationOverrides.Count == 1);
            Assert.AreEqual(
                inferenceClassificationOverrides[0].ClassifyAs,
                inferenceClassification.ClassifyAs);

            Assert.AreEqual(
                inferenceClassificationOverrides[0].SenderEmailAddress.Address,
                inferenceClassification.SenderEmailAddress.Address);

            inferenceClassification.ClassifyAs = InferenceClassificationType.Other;
            inferenceClassification.Update();

            inferenceClassificationOverrides =
                exchangeService.GetInferenceClassificationOverrides();

            Assert.IsTrue(inferenceClassificationOverrides.Count == 1);
            Assert.AreEqual(
                inferenceClassificationOverrides[0].ClassifyAs,
                InferenceClassificationType.Other);

            inferenceClassification.Delete();
            Assert.IsNull(inferenceClassification.Id);
            Assert.IsNull(inferenceClassification.SenderEmailAddress);
        }
Esempio n. 3
0
        /// <summary>
        /// Update the navigation property overrides in users
        /// <param name="body"></param>
        /// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
        /// </summary>
        public RequestInformation CreatePatchRequestInformation(InferenceClassificationOverride body, Action <InferenceClassificationOverrideItemRequestBuilderPatchRequestConfiguration> requestConfiguration = default)
        {
            _ = body ?? throw new ArgumentNullException(nameof(body));
            var requestInfo = new RequestInformation {
                HttpMethod     = Method.PATCH,
                UrlTemplate    = UrlTemplate,
                PathParameters = PathParameters,
            };

            requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body);
            if (requestConfiguration != null)
            {
                var requestConfig = new InferenceClassificationOverrideItemRequestBuilderPatchRequestConfiguration();
                requestConfiguration.Invoke(requestConfig);
                requestInfo.AddRequestOptions(requestConfig.Options);
                requestInfo.AddHeaders(requestConfig.Headers);
            }
            return(requestInfo);
        }
        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);
                }
            }
        }