コード例 #1
0
        public ActionResult AssessmentStudents(AssignStudentsModel model, FormCollection frm, bool continueSelection)
        {
            if (!_permissionService.Authorize("ManageAssessment"))
            {
                return(AccessDeniedView());
            }

            if (continueSelection)
            {
                model.AvailableClassDivisions = _smsService.GetAllClassRoomDivisions().Select(x => new SelectListItem()
                {
                    Text     = "Class-" + _smsService.GetClassById(x.ClassId.Value).Name + ", Division-" + _smsService.GetDivisionById(x.DivisionId.Value).Name,
                    Value    = x.Id.ToString(),
                    Selected = model.ClassDivisionId == x.Id
                }).OrderBy(x => x.Text).ToList();

                // Apply Class Room Division Search
                var assessment = _smsService.GetAssessmentById(model.AssessmentId);
                if (assessment == null)
                {
                    throw new ArgumentNullException("id");
                }

                model.Assessment      = assessment.Name;
                model.AssessmentId    = assessment.Id;
                model.DifficultyLevel = assessment.DifficultyLevelId > 0 ? EnumExtensions.GetDescriptionByValue <DifficultyLevel>(assessment.DifficultyLevelId) : "";
                model.IsTimeBound     = assessment.IsTimeBound;
                model.MaxMarks        = assessment.MaxMarks;
                model.PassingMarks    = assessment.PassingMarks;
                model.StringStartTime = assessment.StartTime.Value.ToString("MMMM dd, yyyy HH:mm tt");
                model.StringEndTime   = assessment.EndTime.Value.ToString("MMMM dd, yyyy HH:mm tt");
                model.Subject         = assessment.SubjectId.HasValue && assessment.SubjectId.Value > 0 ? _smsService.GetSubjectById(assessment.SubjectId.Value).Name : "-";
                model.Url             = assessment.Url;
                model.Duration        = assessment.DurationInMinutes;
                model.StartTime       = assessment.StartTime.Value;
                model.EndTime         = assessment.EndTime.Value;
                var studentsAssociated = _smsService.GetStudentsByAssessmentId(model.AssessmentId);
                // Subjects
                var pSubjects = new List <int>();

                if (assessment.SubjectId.HasValue)
                {
                    pSubjects.Add(assessment.SubjectId.Value);
                }

                var allstudents = _smsService.SearchStudents(classid: model.ClassDivisionId);
                var allHolidays = _smsService.GetAllHolidaysByAcadmicYear(assessment.AcadmicYearId);
                model.Holidays = allHolidays.Select(x => x.Date.Value.ToString("MMMM dd, yyyy")).ToArray();

                model.List.Clear();
                foreach (var q in allstudents)
                {
                    model.List.Add(new AssessmentStudentModel()
                    {
                        AssessmentId         = model.AssessmentId,
                        Assessment           = assessment.Name,
                        AvailableGradeSystem = (from GradeSystem d in Enum.GetValues(typeof(GradeSystem))
                                                select new SelectListItem
                        {
                            Text = EnumExtensions.GetDescriptionByValue <GradeSystem>(Convert.ToInt32(d)),
                            Value = Convert.ToInt32(d).ToString(),
                            Selected = false
                        }).ToList(),
                        AvailableResultStatuses = (from ResultStatus d in Enum.GetValues(typeof(ResultStatus))
                                                   select new SelectListItem
                        {
                            Text = EnumExtensions.GetDescriptionByValue <ResultStatus>(Convert.ToInt32(d)),
                            Value = Convert.ToInt32(d).ToString(),
                            Selected = false
                        }).ToList(),
                        Id = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).Id : 0),
                        CertificateHtml = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).CertificateHtml : ""),
                        GradeSystemId   = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).GradeSystemId : 0),
                        IsCompleted     = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).IsCompleted : false),
                        StudentId       = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).StudentId : q.Id),
                        IsActive        = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).IsActive : false),
                        IsExpired       = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).IsExpired : false),
                        MarksObtained   = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).MarksObtained : 0),
                        ResultStatusId  = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).ResultStatusId : 0),
                        Url             = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).Url : ""),
                        UserId          = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).UserId : q.UserId),
                        IsChecked       = (studentsAssociated.Any(x => x.StudentId == q.Id) ? true : false),
                        StartOn         = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).StartOn : assessment.StartTime),
                        EndOn           = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).EndOn : assessment.EndTime),
                        Student         = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).Student.FName + (!string.IsNullOrEmpty(studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).Student.LName) ? (" " + studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).Student.LName) : "") : _smsService.GetStudentById(q.Id).FName + (!string.IsNullOrEmpty(_smsService.GetStudentById(q.Id).LName) ? (" " + _smsService.GetStudentById(q.Id).LName) : ""))
                    });
                }

                return(View(model));
            }
            else
            {
                if (ModelState.IsValid && model.SelectedStudent != null && model.SelectedStudent.Length > 0)
                {
                    var alreadyAddedStudents = _smsService.GetStudentsByAssessmentId(model.AssessmentId);
                    foreach (var id in model.SelectedStudent)
                    {
                        var aStudent = new AssessmentStudent();
                        aStudent.StudentId      = id;
                        aStudent.AssessmentId   = model.AssessmentId;
                        aStudent.StartOn        = Convert.ToDateTime(frm["StartOn_" + id].ToString());
                        aStudent.EndOn          = Convert.ToDateTime(frm["EndOn_" + id].ToString());
                        aStudent.GradeSystemId  = (frm["GradeSystemId_" + id] != null && !string.IsNullOrEmpty(frm["GradeSystemId_" + id].ToString())) ? Convert.ToInt32(frm["GradeSystemId_" + id].ToString()) : 0;
                        aStudent.ResultStatusId = (frm["ResultStatusId_" + id] != null && !string.IsNullOrEmpty(frm["ResultStatusId_" + id].ToString())) ? Convert.ToInt32(frm["ResultStatusId_" + id].ToString()) : 0;
                        aStudent.UserId         = _userContext.CurrentUser.Id;
                        aStudent.IsCompleted    = (frm["IsCompleted_" + id] != null && !string.IsNullOrEmpty(frm["IsCompleted_" + id].ToString())) ? Convert.ToBoolean(frm["IsCompleted_" + id].ToString()) : false;
                        aStudent.IsExpired      = (frm["IsExpired_" + id] != null && !string.IsNullOrEmpty(frm["IsExpired_" + id].ToString())) ? Convert.ToBoolean(frm["IsExpired_" + id].ToString()) : false;
                        aStudent.Url            = (frm["Url_" + id] != null && !string.IsNullOrEmpty(frm["Url_" + id].ToString())) ? (_urlHelper.GetLocation(false) + frm["Url_" + id].ToString()) : "";

                        if (alreadyAddedStudents.Any(x => x.StudentId == id))
                        {
                            var assessmentStudent = alreadyAddedStudents.FirstOrDefault(x => x.StudentId == id);
                            assessmentStudent.StartOn        = aStudent.StartOn;
                            assessmentStudent.EndOn          = aStudent.EndOn;
                            assessmentStudent.GradeSystemId  = aStudent.GradeSystemId;
                            assessmentStudent.ResultStatusId = aStudent.ResultStatusId;
                            assessmentStudent.UserId         = aStudent.UserId;
                            assessmentStudent.IsCompleted    = aStudent.IsCompleted;
                            assessmentStudent.IsExpired      = aStudent.IsExpired;
                            assessmentStudent.ModifiedOn     = DateTime.Now;
                            _smsService.UpdateStudentAssessment(assessmentStudent);
                        }
                        else
                        {
                            aStudent.CreatedOn = aStudent.ModifiedOn = DateTime.Now;
                            aStudent.UserId    = _userContext.CurrentUser.Id;
                            _smsService.InsertStudentAssessment(aStudent);
                        }
                    }

                    if (alreadyAddedStudents.Count > 0)
                    {
                        var removeStudents = alreadyAddedStudents.Where(y => model.SelectedStudent.Any(z => z != y.StudentId)).ToList();
                        foreach (var q in removeStudents)
                        {
                            _smsService.DeleteStudentAssessment(q.StudentId);
                        }
                    }
                }
                SuccessNotification("Assessment updated successfully.");
            }

            return(RedirectToAction("AssessmentStudents", new { id = model.AssessmentId }));
        }
コード例 #2
0
        public ActionResult AssessmentStudents(int id)
        {
            if (!_permissionService.Authorize("ManageAssessment"))
            {
                return(AccessDeniedView());
            }

            if (id == 0)
            {
                throw new ArgumentNullException("id");
            }

            var assessment = _smsService.GetAssessmentById(id);

            if (assessment == null)
            {
                throw new ArgumentNullException("id");
            }

            var model = new AssignStudentsModel();

            model.Assessment      = assessment.Name;
            model.AssessmentId    = assessment.Id;
            model.DifficultyLevel = assessment.DifficultyLevelId > 0 ? EnumExtensions.GetDescriptionByValue <DifficultyLevel>(assessment.DifficultyLevelId) : "";
            model.IsTimeBound     = assessment.IsTimeBound;
            model.MaxMarks        = assessment.MaxMarks;
            model.PassingMarks    = assessment.PassingMarks;
            model.StringStartTime = assessment.StartTime.Value.ToString("MMMM dd, yyyy HH:mm tt");
            model.StringEndTime   = assessment.EndTime.Value.ToString("MMMM dd, yyyy HH:mm tt");
            model.Subject         = assessment.SubjectId.HasValue && assessment.SubjectId.Value > 0 ? _smsService.GetSubjectById(assessment.SubjectId.Value).Name : "-";
            model.Url             = assessment.Url;
            model.Duration        = assessment.DurationInMinutes;
            model.StartTime       = assessment.StartTime.Value;
            model.EndTime         = assessment.EndTime.Value;

            var allHolidays = _smsService.GetAllHolidaysByAcadmicYear(assessment.AcadmicYearId);

            model.Holidays = allHolidays.Select(x => x.Date.Value.ToString("MMMM dd, yyyy")).ToArray();

            var studentsAssociated = _smsService.GetStudentsByAssessmentId(id);
            // Subjects
            var pSubjects = new List <int>();

            if (assessment.SubjectId.HasValue)
            {
                pSubjects.Add(assessment.SubjectId.Value);
            }

            var allstudents = _smsService.SearchStudents();

            foreach (var q in allstudents)
            {
                model.List.Add(new AssessmentStudentModel()
                {
                    AssessmentId         = id,
                    Assessment           = assessment.Name,
                    AvailableGradeSystem = (from GradeSystem d in Enum.GetValues(typeof(GradeSystem))
                                            select new SelectListItem
                    {
                        Text = EnumExtensions.GetDescriptionByValue <GradeSystem>(Convert.ToInt32(d)),
                        Value = Convert.ToInt32(d).ToString(),
                        Selected = false
                    }).ToList(),
                    AvailableResultStatuses = (from ResultStatus d in Enum.GetValues(typeof(ResultStatus))
                                               select new SelectListItem
                    {
                        Text = EnumExtensions.GetDescriptionByValue <ResultStatus>(Convert.ToInt32(d)),
                        Value = Convert.ToInt32(d).ToString(),
                        Selected = false
                    }).ToList(),
                    Id = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).Id : 0),
                    CertificateHtml = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).CertificateHtml : ""),
                    GradeSystemId   = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).GradeSystemId : 0),
                    IsCompleted     = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).IsCompleted : false),
                    StudentId       = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).StudentId : q.Id),
                    IsActive        = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).IsActive : false),
                    IsExpired       = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).IsExpired : false),
                    MarksObtained   = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).MarksObtained : 0),
                    ResultStatusId  = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).ResultStatusId : 0),
                    Url             = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).Url : ""),
                    UserId          = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).UserId : q.UserId),
                    IsChecked       = (studentsAssociated.Any(x => x.StudentId == q.Id) ? true : false),
                    StartOn         = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).StartOn : assessment.StartTime),
                    EndOn           = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).EndOn : assessment.EndTime),
                    Student         = (studentsAssociated.Any(x => x.StudentId == q.Id) ? studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).Student.FName + (!string.IsNullOrEmpty(studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).Student.LName) ? (" " + studentsAssociated.FirstOrDefault(x => x.StudentId == q.Id).Student.LName) : "") : _smsService.GetStudentById(q.Id).FName + (!string.IsNullOrEmpty(_smsService.GetStudentById(q.Id).LName) ? (" " + _smsService.GetStudentById(q.Id).LName) : ""))
                });
            }

            model.AvailableClassDivisions = _smsService.GetAllClassRoomDivisions().Select(x => new SelectListItem()
            {
                Text     = "Class-" + _smsService.GetClassById(x.ClassId.Value).Name + ", Division-" + _smsService.GetDivisionById(x.DivisionId.Value).Name,
                Value    = x.Id.ToString(),
                Selected = model.ClassDivisionId == x.Id
            }).OrderBy(x => x.Text).ToList();
            return(View(model));
        }