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)); }