in apps/samplecode/education/rosterapi/EducationAccelerator.WebApi/EducationAccelerator.WebApi/Controllers/TeachersController.cs [80:116]
public IActionResult GetClassesForTeacher([FromRoute] string id)
{
using (var client = _client)
{
var links = new List<LinkEntityData>() {
new LinkEntityData()
{
EntityName = "msk12_enrollment",
EntityType = typeof(Enrollment),
JoinMapping = "from='msk12_classid' to='msk12_classid'",
Alias = "enrollment",
Filters = new string[] { "role='teacher'", $"user='{{{id}}}'"}
}
};
var response = client.GetAsync(BuildUrl<IMSClass>(null, links));
var decoded = response.Result.Content.ReadAsStringAsync().Result;
var result = JsonConvert.DeserializeObject<ODataResponse<CrmEnrollment>>(decoded);
if (result.Value == null)
{
return NotFound();
}
var classes = result.Value.Select(x => new Enrollment(x));
serializer = new OneRosterSerializer("classes");
serializer.writer.WriteStartArray();
foreach (var imsClass in classes)
{
imsClass.AsJson(serializer.writer, BaseUrl());
}
serializer.writer.WriteEndArray();
return JsonOk(FinishSerialization(), classes.Count());
}
}