Список всех API графика смен - PullRequest
0 голосов
/ 11 ноября 2019

Я использую Graph API SDK в консольном приложении C # и хочу перечислить все данные смены из команд Microsoft. Но я не могу получить такую ​​информацию. Вот что я сделал до сих пор.

В соответствии с документацией для составления списка всех смен, вы должны предоставить идентификатор команды для получения смены, однако в моем случае,Я должен вернуть всю смену из всех команд. Итак, я должен сначала получить список команды. В документации говорится, что для получения всей команды сначала необходимо получить список групп. Я придерживался того же подхода, и вот код, который я использовал.

var groups = await graphClient
  .Groups.Request()
  .Filter("resourceProvisioningOptions/Any(x:x eq 'Team')")
  .GetAsync();

foreach (var group in groups)
{
    Console.WriteLine(group.DisplayName);
    var shifts = await graphClient
       .Teams[group.Id]
       .Schedule
       .Shifts
       .Request()
       .GetAsync();  
}

Я могу получить список групп, однако я не могу получить список Shift,Когда он пытается получить список смен, возникает следующая ошибка:

Code: NotFound
Message: {
  "error":{
    "code":"NotFound",
    "message":"Sorry, the team was not found, or you may not have access to it.",
    "details":[],
    "innererror":{"code":"TeamNotFound"}
  }
}

Inner error:
    AdditionalData:
      request-id: c5ab5f5c-ec3d-463b-9b1f-0798734e94ce
      date: 11/11/2019 7:50:42 AM
      ClientRequestId: c5ab5f5c-ec3d-463b-9b1f-0798734e94ce

Буду признателен за любую помощь, которая может помочь мне составить список всех смен из списка команд Microsoft. Спасибо.

1 Ответ

1 голос
/ 11 ноября 2019

Скорее всего, эта ошибка возникает, поскольку schedule объект не подготовлен. Точка List shifts конечная точка ожидает, что schedule объект будет подготовлен . Из Get schedule документации :

Во время подготовки по расписанию клиенты могут использовать метод GET, чтобы получить расписание, и посмотреть в свойстве provisionStatus текущее состояние подготовки. ,Если инициализация не удалась, клиенты могут получить дополнительную информацию из свойства provisionStatusCode.

В msgraph-sdk-dotnet может ли быть определено выделенное расписание следующим образом:

var schedule = await graphClient.Teams[group.Id].Schedule.Request().GetAsync();
if (schedule.ProvisionStatus == OperationStatus.Completed)
{  
    //...
}

Вот обновленный пример (, который демонстрирует, как получить смены для подготовленного расписания ):

var groups = await graphClient.Groups.Request()
            .Filter("resourceProvisioningOptions/Any(x:x eq 'Team')")
            .GetAsync();
foreach (var group in groups)
{
     var schedule = await graphClient.Teams[group.Id].Schedule.Request().GetAsync();
     if (schedule.ProvisionStatus == OperationStatus.Completed)
     {
          var shifts = await graphClient.Teams[group.Id].Schedule.Shifts.Request().GetAsync();
         //...
     }         
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...