public async Task <ActionResult> Dashboard() { StudentDashboardVm model = new StudentDashboardVm(); var term = await Db.Terms.Where(x => x.ActiveTerm.Equals(true)).Select(x => x.TermName).FirstOrDefaultAsync(); var session = await Db.Sessions.Where(x => x.ActiveSession.Equals(true)).Select(x => x.SessionName).FirstOrDefaultAsync(); //get the ID of the logged in Student var studentId = User.Identity.GetUserId(); //fetch the student info frm Db Student student = Db.Students.FirstOrDefault(x => x.StudentId == studentId); var myClass = await Db.AssignedClasses.AsNoTracking().Where(x => x.TermName.Equals(term) && x.SessionName.Equals(session) && x.StudentId.Equals(studentId)).Select(s => s.ClassName) .FirstOrDefaultAsync(); var male = await Db.AssignedClasses.AsNoTracking().Where( x => x.TermName.Equals(term) && x.SessionName.Equals(session) && x.ClassName.Equals(myClass)).CountAsync(c => c.Student.Gender.ToUpper().Equals("MALE")); var female = await Db.AssignedClasses.AsNoTracking().Where( x => x.TermName.Equals(term) && x.SessionName.Equals(session) && x.ClassName.Equals(myClass)).CountAsync(c => c.Student.Gender.ToUpper().Equals("FEMALE")); //var totalSubjectOffered = await _resultCommand.SubjectOfferedByStudent(studentId, term, session); var totalStudent = male + female; model.Subjects = await _resultCommand.NameOfSubjectOfferedByStudent(); model.ClassName = myClass; model.MaleStudents = male; model.FemaleStudents = female; model.TotalStudents = totalStudent; model.Term = term; model.Session = session; // model.Subjects = totalSubjectOffered; //foreach (var students in male) //{ // Db.Students.FirstOrDefault(x => x.StudentId == studentId); //} if (String.IsNullOrEmpty(myClass)) { } var classAssinged = Db.AssignedClasses.FirstOrDefault(x => x.StudentId == studentId); ViewBag.NotAssinged = "Class has not been assigned to you yet"; ViewBag.Class = student; // ViewBag.studentClass = student.AssignedClasses; return(View(model)); }
public async Task <ActionResult> AdminDashboard() { int totalMaleStudent = await Db.Students.AsNoTracking().CountAsync(s => s.Gender.Equals("Male") && s.SchoolId.Equals(userSchool)); int totalFemaleStudent = await Db.Students.AsNoTracking().CountAsync(s => s.Gender.Equals("Female") && s.SchoolId.Equals(userSchool)); int active = await Db.Students.AsNoTracking().CountAsync(s => s.Active.Equals(true) && s.SchoolId.Equals(userSchool)); int graduatedStudent = await Db.Students.AsNoTracking().CountAsync(s => s.IsGraduated.Equals(true) && s.SchoolId.Equals(userSchool)); int totalStudent = await Db.Students.AsNoTracking().CountAsync(s => s.SchoolId.Equals(userSchool)); int totalStaff = await Db.Staffs.AsNoTracking().CountAsync(s => s.SchoolId.Equals(userSchool)); double val1 = totalMaleStudent * 100; double val2 = totalFemaleStudent * 100; double boysPercentage = Math.Round(val1 / totalStudent, 2); double femalePercentage = Math.Round(val2 / totalStudent, 2); var list = new List <DataPoint> { new DataPoint(boysPercentage, "Male", "Male"), new DataPoint(femalePercentage, "Female", "Female") }; ViewBag.PiePoints = list; StudentDashboardVm dashboardVm = new StudentDashboardVm(); dashboardVm.MaleStudents = totalMaleStudent; dashboardVm.FemaleStudents = totalFemaleStudent; dashboardVm.TotalStudents = totalStudent; dashboardVm.TotalNumberOfStaff = totalStaff; ViewBag.BoysPercentage = boysPercentage; ViewBag.FemalePercentage = femalePercentage; dashboardVm.ActiveStudent = active; dashboardVm.GraduatedStudent = graduatedStudent; return(View()); }