|
@@ -655,17 +655,24 @@ namespace TEAMModelOS.Controllers.Client
|
|
|
|
|
|
var client = _azureCosmos.GetCosmosClient();
|
|
|
List<object> students = new List<object>();
|
|
|
- var query = $"SELECT cs.id, cs.name, cs.no FROM c JOIN cs IN c.students WHERE c.id = '{class_code}' AND c.scope = '{grant_type}'";
|
|
|
+ var query = $"SELECT c.students FROM c WHERE c.id = '{class_code}' AND c.scope = '{grant_type}'";
|
|
|
string pk = (grant_type.GetString() == "school") ? $"Class-{school_code}" : $"Class-{id}";
|
|
|
string container = (grant_type.GetString() == "school") ? "School" : "Teacher";
|
|
|
await foreach (var item in client.GetContainer("TEAMModelOS", container).GetItemQueryStreamIterator(queryText: query, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey(pk) }))
|
|
|
{
|
|
|
- using var json = await JsonDocument.ParseAsync(item.ContentStream);
|
|
|
+ var json = await JsonDocument.ParseAsync(item.ContentStream);
|
|
|
if (json.RootElement.TryGetProperty("_count", out JsonElement count) && count.GetUInt16() > 0)
|
|
|
{
|
|
|
- foreach (var obj in json.RootElement.GetProperty("Documents").EnumerateArray())
|
|
|
+ foreach (var classObj in json.RootElement.GetProperty("Documents").EnumerateArray())
|
|
|
{
|
|
|
- students.Add(obj.ToObject<object>());
|
|
|
+ foreach (var studentObj in classObj.GetProperty("students").EnumerateArray())
|
|
|
+ {
|
|
|
+ dynamic studentsExtobj = new ExpandoObject();
|
|
|
+ studentsExtobj.id = studentObj.GetProperty("id");
|
|
|
+ studentsExtobj.name = studentObj.GetProperty("name");
|
|
|
+ studentsExtobj.no = studentObj.GetProperty("no");
|
|
|
+ students.Add(studentsExtobj);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
else
|