#c# #api #count #microsoft-graph-api #expand
#c# #API #считать #microsoft-graph-api #Развернуть
Вопрос:
В течение некоторого времени у меня было встроенное приложение, которое синхронизировало информацию о сотрудниках между системой управления персоналом, которую мы используем, и нашим AAD, Чтобы контролировать названия и т. Д.
В какой-то момент мои операции по исправлению ошибок для обновления пользователей начали беззвучно завершаться неудачей (это еще одна проблема..) — но это привело меня в кроличью нору обновления моих пакетов nuget, и после этого момента я теперь не могу использовать один и тот же запрос, чтобы вытащить всех наших пользователей из AAD. Мне нужна информация менеджера, поэтому я использую $expand, а также мне нужно отфильтровать, насколько мне известно, это означает, что мне нужно использовать $count
В нынешнем виде, поскольку я использую $count (нет @odata.nextlink), когда я пытаюсь вытащить вторую страницу данных, API теперь сообщает мне, что $count не является поддерживаемым вариантом запроса (или что-то в этом роде). Я пытался удалить опцию запроса и другие попытки в темноте, но безрезультатно.
Я обшарил все вокруг и не могу найти решение / обходной путь
Любая помощь была бы очень признательна — в конце концов, мне просто нужна приведенная ниже информация, чтобы я мог создавать пользовательские объекты, которые я использую для сравнения в разных системах.
GraphServiceClient graphServiceClient = AzureAuth.SetupGraphClient(); //graphServiceClient.BaseUrl = "https://graph.microsoft.com/beta"; Listlt;Optiongt; queryOptions = new Listlt;Optiongt;(); QueryOption count = new QueryOption("$count", "true"); QueryOption manager = new QueryOption("$expand", "manager($levels=max;$select=id,displayName)"); queryOptions.Add(count); queryOptions.Add(manager); var users = await graphServiceClient.Users.Request(queryOptions).Header("ConsistencyLevel", "eventual").Select(x =gt; new { x.Id, x.Department, x.Mail, x.EmployeeId, x.GivenName, x.Surname, x.Manager, x.BusinessPhones, x.JobTitle, x.AccountEnabled, x.DisplayName, x.City, x.State }).Filter($"endsWith(mail, '@sightsciences.com')").GetAsync(); //Return first paginated result set userHolder.AddRange(users.CurrentPage); //If more than a single page of data is returned, continue pulling until no further pages are present try { while (users.NextPageRequest != null) { users = await users.NextPageRequest.GetAsync(); userHolder.AddRange(users.CurrentPage); } } catch (Exception e) { Console.WriteLine(e); }
Комментарии:
1. Проверьте свои бирки. Если они имеют в виду не то, что вы думаете, вы можете не привлечь внимания нужных людей. Я поменял твою
graph
бирку на подходящую.2. Спасибо! Я больше скрываюсь, чем публикую, поэтому пометка не является сильной стороной 🙂