in apps/samplecode/education/rosterapi/EducationAccelerator.WebApi/EducationAccelerator.WebApi/Controllers/SchoolsController.cs [155:191]
public IActionResult GetStudentsForSchool([FromRoute] string id)
{
using (var client = _client)
{
var links = new List<LinkEntityData>() {
new LinkEntityData()
{
EntityName = "msk12_enrollment",
EntityType = typeof(Enrollment),
JoinMapping = "from='msk12_contact' to='contactid'",
Alias = "enrollment",
Filters = new string[] { $"role='student' AND school='{{{id}}}'"}
}
};
var response = client.GetAsync(BuildUrl<User>(null, links));
var decoded = response.Result.Content.ReadAsStringAsync().Result;
var result = JsonConvert.DeserializeObject<ODataResponse<CrmUser>>(decoded);
if (result.Value == null)
{
return NotFound();
}
var users = result.Value.Select(x => new User(x));
serializer = new OneRosterSerializer("users");
serializer.writer.WriteStartArray();
foreach (var user in users)
{
user.AsJson(serializer.writer, BaseUrl());
}
serializer.writer.WriteEndArray();
return JsonOk(FinishSerialization(), users.Count());
}
}