コード例 #1
0
        private async Task <Group> GetGroupAsync(GraphServiceClient graphClient)
        {
            IGraphServiceGroupsCollectionPage groups = await graphClient.Groups.Request()
                                                       .Filter($"startswith(displayName,'{_configuration["GroupName"]}')")
                                                       .GetAsync();

            Group group;
            bool  firstIteration = true;

            do
            {
                if (!firstIteration)
                {
                    groups = await groups.NextPageRequest
                             .Filter($"startswith(displayName,'{_configuration["GroupName"]}')")
                             .GetAsync();
                }

                firstIteration = false;
                group          = groups.FirstOrDefault(g =>
                                                       g.DisplayName.Equals(_configuration["GroupName"], StringComparison.InvariantCultureIgnoreCase));
            } while (group == null && groups?.NextPageRequest != null);

            return(group);
        }
コード例 #2
0
        public async Task <Group> FindGroupByDisplayNameOrMail(string value, CancellationToken token)
        {
            try
            {
                IGraphServiceGroupsCollectionPage groups = await client.Groups.Request()
                                                           .Filter($"displayName eq '{value}' or mail eq '{value}'")
                                                           .GetAsync(token);

                return(groups.FirstOrDefault());
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex, $"Error locating group by displayName or mail using value {value}.");
            }

            return(null);
        }