Exemple #1
0
        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));
        }
Exemple #2
0
        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());
        }