2017-06-21 6 views
1

Wir haben die Microsoft Graph API für eine Weile verwendet, um den Wert einer erweiterten Eigenschaft festzulegen. Zuvor haben wir das Microsoft.Azure.ActiveDirectory.GraphClient verwendet, aber seit einem Jahr gibt es ein Microsoft.Graph Nuget-Paket. Mit dem Microsoft.Azure.ActiveDirectory.GraphClient gab es eine Methode namens SetExtendedProperty, aber das Microsoft.Graph-Paket gibt es nicht. Hat jemand einen Vorschlag, wie man die Extension-Eigenschaft mit dem Microsoft.Graph-Paket einstellt?Microsoft.Graph api set user Erweiterungseigenschaft

Wenn Sie weitere Informationen benötigen, lassen Sie es mich wissen!

Antwort

2

Sie könnten die Schemaerweiterungen mit Microsoft Graph sdk v1.4.0 Version erstellen. Verwandte Diskussion & Codebeispiel here und here sind für Ihre Referenz.

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

Dann erstellen Sie eine Klasse für die Erweiterung:

Um zum Beispiel eine Schemaerweiterung für Gruppen zu erstellen

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

Als nächstes legen Sie die Schemaerweiterung Eigenschaften auf eine existierte Gruppe von update AdditionalData Eigenschaft Gruppe:

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

Man könnte auch hinzufügen die Erweiterung zu einer neuen Gruppe erstellen wie oben gezeigt.

Update:

Ihre Anforderung die Schemaerweiterung Eigenschaften Benutzer setzt, dann aktualisieren AdditionalData Eigenschaft Benutzer:

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

      }); 

Und wenn Sie für Benutzer Entitätsschema Erweiterung erstellen möchten, User Wert sollte enthält in TargetTypes Eigenschaft des SchemaExtension-Objekts.

Verwandte Themen