Вы можете создать расширения схемы с помощью Microsoft Graph SDK версии 1.4.0. Связанное обсуждение и пример кода здесь и здесь приведены для справки.
Например, чтобы создать расширение схемы для групп:
// Create a schema extension for groups.
SchemaExtension extensionDefinition = new SchemaExtension()
{
Description = "This extension correlates a group with a foreign database.",
Id = $"crmForeignKey", // Microsoft Graph will prepend 8 chars
Properties = new List<ExtensionSchemaProperty>()
{
new ExtensionSchemaProperty() { Name = "fid", Type = "Integer" }
},
TargetTypes = new List<string>()
{
"Group"
}
};
// Create the schema extension. This results in a call to Microsoft Graph.
SchemaExtension schemaExtension = await graphClient.SchemaExtensions.Request().AddAsync(extensionDefinition);
Затем создайте класс для расширения:
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
public class MyDBExtensionClass
{
[JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "fid", Required = Newtonsoft.Json.Required.Default)]
public int FID { get; set; }
public MyDBExtensionClass(int fid)
{
FID = fid;
}
}
Затем установите свойства расширения схемы для существующей группы, обновив свойство AdditionalData
группы:
// Update a group.
// This snippet changes the group name.
// This snippet requires an admin work account.
public async Task<List<ResultsItem>> UpdateGroup(GraphServiceClient graphClient, string id, string name)
{
List<ResultsItem> items = new List<ResultsItem>();
IDictionary<string, object> extensionInstance = new Dictionary<string, object>();
extensionInstance.Add(extensionIDYouGet, new MyDBExtensionClass(1213));
// Update the group.
await graphClient.Groups[id].Request().UpdateAsync(new Group
{
DisplayName = Resource.Updated + name,
AdditionalData= extensionInstance
});
items.Add(new ResultsItem
{
// This operation doesn't return anything.
Properties = new Dictionary<string, object>
{
{ Resource.No_Return_Data, "" }
}
});
return items;
}
Вы также можете добавить расширение в новую группу создания, как показано по ссылке выше.
Обновлять :
Ваше требование - установить свойства расширения схемы для пользователя, а затем обновить свойство AdditionalData
пользователя:
await graphClient.Users["ID"].Request().UpdateAsync(new User
{
DisplayName = Resource.Updated + name,
AdditionalData = extensionInstance
});
И если вы хотите создать расширение схемы для объекта пользователя, User
value должно быть включено в свойство TargetTypes
объекта SchemaExtension.
person
Nan Yu
schedule
23.06.2017