2017-06-21 8 views
1

Microsoft Graph APIを使用して拡張プロパティの値を設定しました。以前はMicrosoft.Azure.ActiveDirectory.GraphClientを使用しましたが、1年後にはMicrosoft.Graph Nugetパッケージが使用されています。 Microsoft.Azure.ActiveDirectory.GraphClientにはSetExtendedPropertyというメソッドがありましたが、Microsoft.Graphパッケージにはそのようなものはありません。誰もMicrosoft.Graphパッケージで拡張プロパティを設定する方法を提案していますか?Microsoft.Graph API設定ユーザー拡張プロパティ

さらに詳しい情報が必要な場合はお知らせください。

答えて

2

microsoft graph sdk v1.4.0バージョンでスキーマ拡張を作成することができます。関連する説明&コードサンプルhereおよびhereは参照用です。更新により存在グループにスキーマ拡張プロパティを設定し、

[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; 
    } 
} 

次へ:そして拡張のクラスを作成

// 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); 

:グループのためのスキーマ拡張を作成するために、例えば

、グループの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; 
     } 

上記のリンクに示すように、新しいcreate groupへの拡張。

更新:必要があります

await graphClient.Users["ID"].Request().UpdateAsync(new User 
      { 
       DisplayName = Resource.Updated + name, 
       AdditionalData = extensionInstance 

      }); 

そして、あなたは、ユーザエンティティのスキーマ拡張を作成したい場合は、User値:

あなたの要件は、ユーザーのAdditionalDataプロパティを更新し、ユーザーにスキーマ拡張プロパティを設定していますSchemaExtensionオブジェクトのTargetTypesプロパティに含まれています。

関連する問題