Получение сообщений Microsoft Graph с помощью flagStatus с использованием фильтра OData $ - PullRequest
0 голосов
/ 10 января 2019

Я пишу запрос Microsoft Graph OData для получения почтовых сообщений на основе сообщения flagStatus, чтобы повторно использовать рабочий запрос в моем коде C #. Как должен выглядеть правильный запрос?

Следующий пример используется в Образце учетной записи , где все сообщения имеют объект flag с полем flagStatus = "notFlagged".

https://graph.microsoft.com/v1.0/me/messages?$filter=flag/flagStatus eq 'notFlagged'

Ожидается, что все сообщения должны быть возвращены. Но в результате пустой массив был возвращен.

Если в запросе я меняю eq на ne на

https://graph.microsoft.com/v1.0/me/messages?$filter=flag/flagStatus ne 'notFlagged'

тогда все сообщения возвращаются. Но от меня ожидается, что здесь должен быть пустой массив в этом случае.

Учитывая, что, возможно, flag объект не готов к фильтрации, я также попытался $expand it

https://graph.microsoft.com/v1.0/me/messages?$expand=flag&$filter=flag/flagStatus eq 'notFlagged'

но получено сообщение об ошибке

Свойство 'flag' для типа 'microsoft.graph.message' не является свойством навигации или сложным свойством. Только свойства навигации могут быть расширены.

Так что, вероятно, $expand для фильтрации флагов не требуется. Но можно ли вообще фильтровать по флагу сообщения?

Также, если учесть ситуацию, что объект flag может быть нулевым, а также flagStatus внутри может быть нулевым (по крайней мере, в C # class Microsoft.Graph.FollowupFlag свойство FlagStatus имеет значение NULL), то как должен выглядеть запрос для полного удовлетворения ниже требования?

Получать сообщения, чьи

  1. flag is null
  2. или flag/flagStatus - это null
  3. или flag/flagStatus - это 'notFlagged'
...