Microsoft Graph Client SDK - фильтр группы по имени - PullRequest
1 голос
/ 13 апреля 2019

Довольно простой запрос, но у меня возникли проблемы с преобразованием моего основного httpClient метода запроса графика в метод SDK. Я использовал следующее, и оно отлично работает:

    var filter = "IT";
    var response = await httpClient.GetAsync($"{webOptions.GraphApiUrl}/beta/groups?$filter=startswith(displayName, '{filter}')&$select=id,displayName");

... сейчас я пытаюсь фильтровать с помощью SDK следующим образом:

    var groups = await graphServiceClient.Groups
        .Request()
        .Filter($"displayName startswith {filter}")
        .Select("id, displayName")
        .GetAsync();

Я также пробовал .Filter($"startswith("displayName", {filter})) и другие варианты.

Я получаю invalid filter clause ошибку. Есть идеи?

1 Ответ

1 голос
/ 13 апреля 2019

Очевидно, это происходит, поскольку предоставленное выражение фильтра для метода Filter недопустимо, его можно проверить следующим образом:

var message = graphServiceClient.Groups
        .Request()
        .Filter($"displayName startswith '{filter}'")
        .Select("id, displayName").GetHttpRequestMessage();

Сгенерированный message.RequestUri вернет следующее значение:

https://graph.microsoft.com/v1.0/groups?$filter=displayName startswith '{filter}'&$select=id, displayName}

Действительное выражение фильтра должно быть указано так:

.Filter($"startswith(displayName, '{filter}')")

В случае, если вы хотите переключиться на beta версию для GraphServiceClient класса, это можно указать так:

graphServiceClient.BaseUrl = "https://graph.microsoft.com/beta";  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...