Untitled
unknown
plain_text
a year ago
1.4 kB
3
Indexable
public IActionResult PredictGrade() { var sessions = Database.StudySessions; var subjects = Database.Subjects; // Fetch the subjects from the database var results = sessions.GroupBy(s => s.SubjectID).Select(group => new { SubjectID = group.Key, SubjectName = subjects.FirstOrDefault(sub => sub.SubjectID == group.Key)?.Name, // Get the subject name PredictedGrade = CalculateGrade(group.ToList()), ExistingKnowledgeLevel = int.Parse(group.First().KnowledgeLevel), PredictedKnowledge = CalculatePredictedKnowledge(group.ToList()) }).ToList(); return View(results); // Pass the list of predicted grades to the view } private string CalculateGrade(List<StudySession> sessions) { // Calculate total study time and number of sessions for the subject int totalSessions = sessions.Count; int totalStudyTime = sessions.Sum(session => (session.DurationMinutes - Database.Breaks .Where(b => b.StudySessionID == session.StudySessionID) .Sum(b => b.DurationMinutes))); double score = (totalStudyTime * int.Parse(sessions.First().KnowledgeLevel)) / 100.0; if (score >= 7) return "A"; else if (score >= 6 && score < 7) return "B"; else if (score >= 5 && score < 6) return "C"; else if (score >= 4 && score < 5) return "D"; else return "F"; }
Editor is loading...
Leave a Comment