public ActionResult Evalution(int id)
        {
            ExamDto           exam = new ExamDto();
            EvalutionDto      evalution;
            List <Evaluation> evalutions = new List <Evaluation>();

            var _exam = db.Exam.Where(r => r.Id == id).Include(e => e.CourseClass).Include(e => e.ExamType).FirstOrDefault();

            exam.CoursTitle = _exam.CourseClass.Title;
            exam.ExamTitle  = _exam.Title;
            exam.ExamType   = _exam.ExamType.Type;

            if (User.IsInRole("Student"))
            {
                evalutions = EvalutionRepo.GetInstance().GetEvalutionByStudent(id, Utilities.GetInstance().GetCurrentUserId());
            }
            else
            {
                evalutions = EvalutionRepo.GetInstance().GetEvalutionByExam(id);
            }

            exam.Evalutions = new List <EvalutionDto>();
            foreach (var e in evalutions)
            {
                evalution          = new EvalutionDto();
                evalution.Grade    = e.Grade;
                evalution.Username = Utilities.GetInstance().GetUserName(e.StudentId);
                evalution.FullName = Utilities.GetInstance().GetUserFullName(e.StudentId);
                evalution.ExamDate = e.ExamDate;

                exam.Evalutions.Add(evalution);
            }
            return(View(exam));
        }
        public ActionResult Evaluation(int id)
        {
            var          exam            = db.Exam.FirstOrDefault(x => x.Id == id);
            var          students        = Utilities.GetInstance().GetStudentsFromIDs(exam.CourseClass.StudentIds);
            var          evaluationTypes = db.EvaluationTypeSet.OrderBy(x => x.Id).ToList();
            EvalutionDto model           = new EvalutionDto();

            model.Exam      = exam;
            model.Students  = students;
            model.EvalTypes = evaluationTypes;
            return(View(model));
        }
        public ActionResult DoStudentEvaluation(int sid, int eid, bool isPDF = false)
        {
            var          exam            = db.Exam.FirstOrDefault(x => x.Id == eid);
            var          student         = db.AspNetUsers.FirstOrDefault(x => x.UserId == sid);
            var          evaluationTypes = db.EvaluationTypeSet.OrderBy(x => x.Id).ToList();
            EvalutionDto model           = new EvalutionDto();

            model.Exam     = exam;
            model.Students = new List <AspNetUsers> {
                student
            };
            model.EvalTypes = evaluationTypes;
            var attendanceDetails = Utilities.GetInstance().GetClassStudentsDetails(exam.CourseClassId).FirstOrDefault(x => x.Student.UserId == student.UserId);

            ViewBag.SID        = sid;
            ViewBag.EID        = eid;
            ViewBag.IsPDF      = isPDF;
            ViewBag.Attendance = (double.Parse(attendanceDetails.Presents.ToString()) / (attendanceDetails.Presents + attendanceDetails.Absents) * 100).ToString("0.00");
            return(View(model));
        }