public async Task <IActionResult> SearchFailedStudents(MarksheetIndexModel marksheetDetails) { var studentList = await _context.Student.Where(student => student.Grade == marksheetDetails.Grade).ToListAsync(); var failedStudentResult = (from subject in await _context.Subjects.ToListAsync() join student in studentList on new { id = subject.StudentId, grade = subject.Grade } equals new { id = student.StudentId, grade = student.Grade } orderby subject.Percentage descending where subject.Maths < StaticDataValues.PassMarks || subject.Social < StaticDataValues.PassMarks || subject.Science < StaticDataValues.PassMarks || subject.English < StaticDataValues.PassMarks || subject.Nepali < StaticDataValues.PassMarks select new FailedStudentModel() { StudentId = student.StudentId, StudentName = student.StudentName, Percentage = subject.Percentage.ToString() }) .ToList(); if (failedStudentResult.Count <= 0) { return(RedirectToAction(nameof(Index), new { message = "No Students have failed for this grade." })); } return(View("FailedStudentList", failedStudentResult)); }
public async Task <IActionResult> SearchMarksheet(MarksheetIndexModel marksheetDetails) { var Student = await _context.Student.Where(student => student.StudentId == marksheetDetails.Student).FirstOrDefaultAsync(); var Subject = await _context.Subjects.Where(subject => subject.StudentId == marksheetDetails.Student && subject.Grade == Student.Grade).FirstOrDefaultAsync(); if (Subject == null) { return(RedirectToAction(nameof(Index), new { message = "Marksheet Not Found" })); } var model = new StudentViewModel() { Student = Student, Subject = Subject }; return(View("StudentMarksheet", model)); }
public async Task <IActionResult> SearchToppers(MarksheetIndexModel marksheetDetails) { var studentList = await _context.Student.Where(student => student.Grade == marksheetDetails.Grade).ToListAsync(); var topStudentResult = (from subject in await _context.Subjects.ToListAsync() join student in studentList on new { id = subject.StudentId, grade = subject.Grade } equals new { id = student.StudentId, grade = student.Grade } orderby subject.Percentage descending where subject.Maths >= StaticDataValues.PassMarks && subject.Social >= StaticDataValues.PassMarks && subject.Science >= StaticDataValues.PassMarks && subject.English >= StaticDataValues.PassMarks && subject.Nepali >= StaticDataValues.PassMarks select new StudentRankedListModel() { StudentId = student.StudentId, StudentName = student.StudentName, Percentage = subject.Percentage.ToString(), TotalMarks = subject.TotalMarks.ToString() }) .Take(3).ToList(); return(View("RankedStudentList", topStudentResult)); }