private async Task GenerateProfileAsync()

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();
            }
        }