Установка пользовательских свойств для группы 365 с GraphClient - PullRequest
1 голос
/ 30 января 2020

Я хочу установить CustomProperty5 для группы 265. У меня есть следующий код:

var extensions = await graphClient.Groups["xxx"].Extensions.Request().GetAsync();

var dictionary = new Dictionary<string, object>();
dictionary.Add("CustomAttribute5", "Works!");

await graphClient
.Groups["xxx"]
.Request()
.UpdateAsync(new Microsoft.Graph.Group()
{
AdditionalData = dictionary

});

Однако я получаю следующую ошибку:

Microsoft.Graph.ServiceException: 'Код: Request_BadRequest Сообщение: одно или несколько указанных значений свойств недопустимы.

Есть ли какие-либо указатели, как установить пользовательские свойства для группы 365?

1 Ответ

1 голос
/ 30 января 2020

Для существующей группы открытое расширение может быть обновлено , например, через msgraph-sdk-dotnet:

 //retrieve an existing group custom property   
 var ext = await graphClient.Groups[groupId].Extensions[extName].Request().GetAsync();

 //update
 ext.AdditionalData = new Dictionary<string, object>()
 {
      {
          "status", "Closed"
      }
 };            
 await graphClient.Groups[groupId].Extensions[extName]
         .Request()
         .UpdateAsync(ext);

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

{
    "id":"contoso_grpstatus",
    "description": "",
    "targetTypes": [
        "Group"
    ],
    "properties": [
        {
            "name": "Status",
            "type": "String"
        }
    ]
}

Тогда существующий экземпляр группы с определением расширения сложного типа contoso_grpstatus можно обновить следующим образом:

var group = new Group
{
     AdditionalData = new Dictionary<string, object>()
     {
          {
                "contoso_grpstatus", new Dictionary<string, object>()
                {
                    {"Status", "Closed"}
                }
          }
     }
};
await graphClient.Groups[groupId]
         .Request()
         .UpdateAsync(group);
...