in apps/samplecode/education/rosterapi/EducationAccelerator.WebApi/EducationAccelerator.WebApi/Controllers/SdsController.cs [163:249]
private async Task<string> GenerateProfileAsync(string profileType)
{
var skus = await GetOfficeSkusAsync();
StringBuilder sb = new StringBuilder();
using (JsonWriter writer = new JsonTextWriter(new StringWriter(sb)))
{
writer.WriteStartObject();
writer.WritePropertyName("displayName");
writer.WriteValue($"OneRoster{profileType.ToUpper()}Profile");
writer.WritePropertyName("dataProvider");
writer.WriteStartObject();
writer.WritePropertyName("@odata.type");
if (profileType == "csv")
{
writer.WriteValue("#microsoft.graph.educationCsvDataProvider");
}
else
{
writer.WriteValue("#microsoft.graph.educationcsvdataprovider");
}
writer.WriteEndObject();
writer.WritePropertyName("identitySynchronizationConfiguration");
writer.WriteStartObject();
writer.WritePropertyName("@odata.type");
writer.WriteValue("#microsoft.graph.educationidentitycreationconfiguration");
writer.WritePropertyName("userDomains");
writer.WriteStartArray();
writer.WriteStartObject();
writer.WritePropertyName("appliesTo");
writer.WriteValue("student");
writer.WritePropertyName("name");
writer.WriteValue(_config.GetValue<string>("AzureDomain"));
writer.WriteEndObject();
writer.WriteStartObject();
writer.WritePropertyName("appliesTo");
writer.WriteValue("teacher");
writer.WritePropertyName("name");
writer.WriteValue(_config.GetValue<string>("AzureDomain"));
writer.WriteEndObject();
writer.WriteEndArray();
writer.WriteEndObject();
writer.WritePropertyName("licensesToAssign");
writer.WriteStartArray();
writer.WriteStartObject();
writer.WritePropertyName("appliesTo");
writer.WriteValue("teacher");
writer.WritePropertyName("skuIds");
writer.WriteStartArray();
if(skus.Item1 != null)
writer.WriteValue(skus.Item1);
writer.WriteEndArray();
writer.WriteEndObject();
writer.WriteStartObject();
writer.WritePropertyName("appliesTo");
writer.WriteValue("student");
writer.WritePropertyName("skuIds");
writer.WriteStartArray();
if(skus.Item2 != null)
writer.WriteValue(skus.Item2);
writer.WriteEndArray();
writer.WriteEndObject();
writer.WriteEndArray();
writer.WriteEndObject();
return sb.ToString();
}
}