|
@@ -356,35 +356,41 @@ namespace TEAMModelOS.FunctionV4.CosmosDB
|
|
|
{
|
|
|
//if (rs.totalScore == 0)
|
|
|
//{
|
|
|
- foreach (var sc in rs.subjectScores)
|
|
|
+ foreach (var sc in rs.subjectScores)
|
|
|
+ {
|
|
|
+ //if (sc.score == 0)
|
|
|
+ //{
|
|
|
+ /* var subjectMore = rs.results.GroupBy(x => x.subjectId).Select(c => new { subject = c.Key, list = c.ToList().Select(m => new { m.quotaId,m.score}) });
|
|
|
+ var totalScore = subjectMore.Select(x => new {
|
|
|
+ x.subject,
|
|
|
+ quotaScroe = x.list.Select(c => new {
|
|
|
+ c.quotaId,
|
|
|
+ c.score
|
|
|
+ }),
|
|
|
+ });*/
|
|
|
+ var quotaPercent = setting.quotas.Select(x => new
|
|
|
{
|
|
|
- //if (sc.score == 0)
|
|
|
- //{
|
|
|
- /* var subjectMore = rs.results.GroupBy(x => x.subjectId).Select(c => new { subject = c.Key, list = c.ToList().Select(m => new { m.quotaId,m.score}) });
|
|
|
- var totalScore = subjectMore.Select(x => new {
|
|
|
- x.subject,
|
|
|
- quotaScroe = x.list.Select(c => new {
|
|
|
- c.quotaId,
|
|
|
- c.score
|
|
|
- }),
|
|
|
- });*/
|
|
|
- var quotaPercent = setting.quotas.Select(x => new
|
|
|
+ x.id,
|
|
|
+ x.percent,
|
|
|
+ score = x.children.Select(c => new
|
|
|
+ {
|
|
|
+ real = rs.results.Where(r => r.quotaId.Equals(c.id) && r.subjectId.Equals(sc.subjectId) && r.score > -1).FirstOrDefault()?.score * c.percent * 0.01,
|
|
|
+ score = c.children.Select(s => new
|
|
|
{
|
|
|
- x.id,
|
|
|
- x.percent,
|
|
|
- score = x.children.Select(c => new
|
|
|
- {
|
|
|
- real = rs.results.Where(r => r.quotaId.Equals(c.id) && r.subjectId.Equals(sc.subjectId) && r.score > -1).FirstOrDefault()?.score * c.percent * 0.01,
|
|
|
- score = c.children.Select(s => new {
|
|
|
- real = rs.results.Where(r => r.quotaId.Equals(s.id) && r.subjectId.Equals(sc.subjectId) && r.score > -1).FirstOrDefault()?.score * s.percent * 0.01
|
|
|
- }).Sum(n => n.real) * c.percent * 0.01
|
|
|
- }).Sum(n => n.real + n.score) * x.percent * 0.01
|
|
|
- });
|
|
|
- sc.score = Math.Round((double)quotaPercent.Sum(c => c.score),2);
|
|
|
- //}
|
|
|
+ real = rs.results.Where(r => r.quotaId.Equals(s.id) && r.subjectId.Equals(sc.subjectId) && r.score > -1).FirstOrDefault()?.score * s.percent * 0.01
|
|
|
+ }).Sum(n => n.real) * c.percent * 0.01
|
|
|
+ }).Sum(n => n.real + n.score) * x.percent * 0.01
|
|
|
+ });
|
|
|
+ double realScore = Math.Round((double)quotaPercent.Sum(c => c.score) * 1.5, 2);
|
|
|
+ if (realScore > 95)
|
|
|
+ {
|
|
|
+ realScore = new Random().Next(90,100);
|
|
|
}
|
|
|
- rs.totalScore = Math.Round(rs.subjectScores.Where(m => m.score >= 0).Sum(z => z.score), 2);
|
|
|
- tasks.Add(client.GetContainer(Constant.TEAMModelOS, Constant.Student).ReplaceItemAsync(rs, rs.id, new PartitionKey(rs.code)));
|
|
|
+ sc.score = realScore;
|
|
|
+ //}
|
|
|
+ }
|
|
|
+ rs.totalScore = Math.Round(rs.subjectScores.Where(m => m.score >= 0).Sum(z => z.score), 2);
|
|
|
+ tasks.Add(client.GetContainer(Constant.TEAMModelOS, Constant.Student).ReplaceItemAsync(rs, rs.id, new PartitionKey(rs.code)));
|
|
|
//}
|
|
|
}
|
|
|
if (tasks.Count > 0)
|