|
@@ -132,48 +132,21 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
|
School scInfo = await client.GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<School>($"{code}", partitionKey: new PartitionKey("Base"));
|
|
|
var perMore = scInfo.period.Where(c => c.id.Equals(pId.GetString())).FirstOrDefault().grades;
|
|
|
|
|
|
- var interaction = records.Where(c => c.startTime >= stime.GetInt64() && c.startTime <= etime.GetInt64() && c.grade.Any()).GroupBy(k => int.Parse(k.grade?[0])).Select(x => new
|
|
|
- {
|
|
|
- x.Key,
|
|
|
- name = perMore[x.Key],
|
|
|
- count = x.Sum(t => t.learningCategory?.interaction)
|
|
|
- });
|
|
|
- var cooperation = records.Where(c => c.startTime >= stime.GetInt64() && c.startTime <= etime.GetInt64() && c.grade.Any()).GroupBy(k => int.Parse(k.grade?[0])).Select(x => new
|
|
|
- {
|
|
|
- x.Key,
|
|
|
- name = perMore[x.Key],
|
|
|
- count = x.Sum(t => t.learningCategory?.cooperation)
|
|
|
- });
|
|
|
- var task = records.Where(c => c.startTime >= stime.GetInt64() && c.startTime <= etime.GetInt64() && c.grade.Any()).GroupBy(k => int.Parse(k.grade?[0])).Select(x => new
|
|
|
- {
|
|
|
- x.Key,
|
|
|
- name = perMore[x.Key],
|
|
|
- count = x.Sum(t => t.learningCategory?.task)
|
|
|
- });
|
|
|
- var exam = records.Where(c => c.startTime >= stime.GetInt64() && c.startTime <= etime.GetInt64() && c.grade.Any()).GroupBy(k => int.Parse(k.grade?[0])).Select(x => new
|
|
|
- {
|
|
|
- x.Key,
|
|
|
- name = perMore[x.Key],
|
|
|
- count = x.Sum(t => t.learningCategory?.exam)
|
|
|
- });
|
|
|
- var diffential = records.Where(c => c.startTime >= stime.GetInt64() && c.startTime <= etime.GetInt64() && c.grade.Any()).GroupBy(k => int.Parse(k.grade?[0])).Select(x => new
|
|
|
- {
|
|
|
- x.Key,
|
|
|
- name = perMore[x.Key],
|
|
|
- count = x.Sum(t => t.learningCategory?.diffential)
|
|
|
- });
|
|
|
+ var realrecords = records.Where(c => c.startTime >= stime.GetInt64() && c.startTime <= etime.GetInt64() && c.grade.Any()).ToList();
|
|
|
List<(string name, int? cICount, int? pCount, int? cTCount, int? eCount,int? diffCount)> tcount = new();
|
|
|
List<(string name, int? count)> gdCount = new();
|
|
|
+ int gCount = 0;
|
|
|
perMore.ForEach(x =>
|
|
|
{
|
|
|
- var cICount = interaction.Where(c => c.name.Equals(x, StringComparison.OrdinalIgnoreCase)).FirstOrDefault()?.count;
|
|
|
- var pCount = cooperation.Where(c => c.name.Equals(x, StringComparison.OrdinalIgnoreCase)).FirstOrDefault()?.count;
|
|
|
- var cTCount = task.Where(c => c.name.Equals(x, StringComparison.OrdinalIgnoreCase)).FirstOrDefault()?.count;
|
|
|
- var eCount = exam.Where(c => c.name.Equals(x, StringComparison.OrdinalIgnoreCase)).FirstOrDefault()?.count;
|
|
|
- var diffCount = diffential.Where(c => c.name.Equals(x, StringComparison.OrdinalIgnoreCase)).FirstOrDefault()?.count;
|
|
|
+ var cICount = realrecords.Where(c => c.grade.Contains(gCount.ToString())).Select(z => z.learningCategory?.interaction).Sum();
|
|
|
+ var pCount = realrecords.Where(c => c.grade.Contains(gCount.ToString())).Select(z => z.learningCategory?.cooperation).Sum();
|
|
|
+ var tCount = realrecords.Where(c => c.grade.Contains(gCount.ToString())).Select(z => z.learningCategory?.task).Sum();
|
|
|
+ var eCount = realrecords.Where(c => c.grade.Contains(gCount.ToString())).Select(z => z.learningCategory?.exam).Sum();
|
|
|
+ var diffCount = realrecords.Where(c => c.grade.Contains(gCount.ToString())).Select(z => z.learningCategory?.diffential).Sum();
|
|
|
var gradeCount = grades.Where(c => perMore[int.Parse(c.name)].Equals(x, StringComparison.OrdinalIgnoreCase)).FirstOrDefault().count;
|
|
|
- tcount.Add((x, cICount, pCount, cTCount, eCount, diffCount));
|
|
|
+ tcount.Add((x, cICount, pCount, tCount, eCount, diffCount));
|
|
|
gdCount.Add((x, gradeCount));
|
|
|
+ gCount++;
|
|
|
});
|
|
|
|
|
|
var teachingCount = tcount.Select(x => new
|