Esempio n. 1
0
        public IActionResult Assessment(AssessmentStudent assessmentStudent)
        {
            var homeTask = repository.GetHomeTaskById(assessmentStudent.HomeTaskId);

            if (homeTask.HomeTaskAssessments.Any())
            {
                List <HomeTaskAssessment> assessments = new List <HomeTaskAssessment>();
                foreach (var homeTaskStudent in assessmentStudent.HomeTaskStudents)
                {
                    assessments.Add(new HomeTaskAssessment()
                    {
                        Id = homeTaskStudent.HomeTaskAssessmentId, Date = DateTime.Now, IsComplete = homeTaskStudent.IsComplete
                    });
                }
                repository.UpdateHomeTaskAssessments(assessments);
            }
            else
            {
                foreach (var homeTaskStudent in assessmentStudent.HomeTaskStudents)
                {
                    var student = repository.GetStudentById(homeTaskStudent.StudentId);
                    homeTask.HomeTaskAssessments.Add(new HomeTaskAssessment {
                        HomeTask = homeTask, IsComplete = homeTaskStudent.IsComplete, Student = student, Date = DateTime.Now
                    });
                }
                repository.CreateHomeTaskAssessments(homeTask.HomeTaskAssessments);
            }
            return(RedirectToAction("Courses", "Courses"));
        }
Esempio n. 2
0
        public IActionResult Assessment(int id)
        {
            var homeTask1 = repository.GetHomeTaskById(id);
            AssessmentStudent assessmentViewModel =
                new AssessmentStudent
            {
                Date             = homeTask1.Date,
                Description      = homeTask1.Description,
                Title            = homeTask1.Title,
                HomeTaskStudents = new List <AssessmentStudent_Student>(),
                HomeTaskId       = homeTask1.Id
            };

            if (homeTask1.HomeTaskAssessments.Any())
            {
                foreach (var homeTaskAssessment in repository.GetHomeTaskAssessmentsByHomeTaskId(id))
                {
                    assessmentViewModel.HomeTaskStudents.Add(new AssessmentStudent_Student()
                    {
                        StudentName          = homeTaskAssessment.Student.Name,
                        StudentId            = homeTaskAssessment.Student.Id,
                        IsComplete           = homeTaskAssessment.IsComplete,
                        HomeTaskAssessmentId = homeTaskAssessment.Id
                    });
                }
            }
            else
            {
                foreach (var student in homeTask1.Course.Students)
                {
                    assessmentViewModel.HomeTaskStudents.Add(new AssessmentStudent_Student()
                    {
                        StudentName = student.Name, StudentId = student.Id
                    });
                }
            }
            return(View(assessmentViewModel));
        }
        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 }));
        }
Esempio n. 4
0
        public virtual void AddStudentAssessmentTokens(IList <DataToken> tokens, AssessmentStudent stuassessment)
        {
            var stuAssessmentData = _studentAssessmentRepository.GetByID(stuassessment.Id);
            var assessmentData    = new Assessment();
            var studentData       = new Student();

            if (stuAssessmentData != null && stuAssessmentData.Assessment != null)
            {
                assessmentData = stuAssessmentData.Assessment;
                studentData    = stuAssessmentData.Student;
            }

            tokens.Add(new DataToken()
            {
                Name = "Assessment Student First Name", SystemName = "AssessmentStudentFirstName", Value = studentData.FName
            });
            tokens.Add(new DataToken()
            {
                Name = "Assessment Student Last Name", SystemName = "AssessmentStudentLastName", Value = studentData.FName
            });
            tokens.Add(new DataToken()
            {
                Name = "Assessment Student User Name", SystemName = "AssessmentStudentUserName", Value = studentData.UserName
            });
            if (studentData.AcadmicYearId > 0)
            {
                tokens.Add(new DataToken()
                {
                    Name = "Assessment Student Acadmic Year", SystemName = "AssessmentStudentAcadmicYear", Value = _acadmicYearRepository.GetByID(studentData.AcadmicYearId)?.Name
                });
            }
            tokens.Add(new DataToken()
            {
                Name = "Assessment Student Date Of Birth", SystemName = "AssessmentStudentDOB", Value = studentData.DateOfBirth?.ToString("dd MMM yyyy")
            });

            if (stuAssessmentData != null)
            {
                tokens.Add(new DataToken()
                {
                    Name       = "Student Assessment Start On",
                    SystemName = "StudentAssessmentStartOn",
                    Value      = assessmentData.OpenToAnonymousUsers
                        ? assessmentData.StartTime?.ToString("dd MMM yyyy HH:mm") ?? "Start Time Not Specified"
                        : stuAssessmentData.StartOn?.ToString("dd MMM yyyy HH:mm") ?? "Start Time Not Specified"
                });
            }

            if (stuAssessmentData != null)
            {
                tokens.Add(new DataToken()
                {
                    Name       = "Student Assessment End On",
                    SystemName = "StudentAssessmentEndOn",
                    Value      = assessmentData.OpenToAnonymousUsers
                        ? assessmentData.EndTime?.ToString("dd MMM yyyy HH:mm") ?? "End Time Not Specified"
                        : stuAssessmentData.EndOn?.ToString("dd MMM yyyy HH:mm") ?? "End Time Not Specified"
                });
            }

            if (stuAssessmentData != null)
            {
                tokens.Add(new DataToken()
                {
                    Name       = "Student Assessment Url",
                    SystemName = "StudentAssessmentUrl",
                    Value      = stuAssessmentData.Url
                });
            }

            if (stuAssessmentData != null)
            {
                tokens.Add(new DataToken()
                {
                    Name       = "Student Assessment Marks Obtained",
                    SystemName = "StudentAssessmentMarksObtained",
                    Value      = stuAssessmentData.MarksObtained.ToString("f2")
                });
            }

            if (stuAssessmentData != null)
            {
                tokens.Add(new DataToken()
                {
                    Name       = "Student Assessment Result",
                    SystemName = "StudentAssessmentResultStatus",
                    Value      = Enum.GetName(typeof(ResultStatus), stuAssessmentData.ResultStatusId)
                });
            }

            tokens.Add(new DataToken()
            {
                Name = "Assessment Start Time", SystemName = "AssessmentStartTime", Value = assessmentData.StartTime?.ToString("dd MMM yyyy HH:mm") ?? "Start Time Not Specified"
            });
            tokens.Add(new DataToken()
            {
                Name = "Assessment End Time", SystemName = "AssessmentEndTime", Value = assessmentData.EndTime?.ToString("dd MMM yyyy HH:mm") ?? "Start Time Not Specified"
            });
            tokens.Add(new DataToken()
            {
                Name = "Assessment Url", SystemName = "AssessmentUrl", Value = assessmentData.Url
            });
            tokens.Add(new DataToken()
            {
                Name = "Assessment Name", SystemName = "AssessmentName", Value = assessmentData.Name
            });
            tokens.Add(new DataToken()
            {
                Name = "Assessment Passing Marks", SystemName = "AssessmentPassingMarks", Value = Math.Round(assessmentData.PassingMarks.Value).ToString(CultureInfo.InvariantCulture)
            });
            tokens.Add(new DataToken()
            {
                Name = "Assessment Max Marks", SystemName = "AssessmentMaxMarks", Value = Math.Round(assessmentData.MaxMarks.Value).ToString(CultureInfo.InvariantCulture)
            });
            tokens.Add(new DataToken()
            {
                Name = "Assessment Instructions", SystemName = "AssessmentInstructions", Value = assessmentData.Instructions
            });
            tokens.Add(new DataToken()
            {
                Name = "Assessment Is Time bound", SystemName = "AssessmentIsTimeBound", Value = assessmentData.IsTimeBound ? "Yes" : "No"
            });
            tokens.Add(new DataToken()
            {
                Name = "Assessment Total Questions", SystemName = "AssessmentTotalQuestions", Value = assessmentData.TotalQuestions.ToString()
            });
            tokens.Add(new DataToken()
            {
                Name = "Assessment Duration(In Mins.)", SystemName = "AssessmentDuration", Value = assessmentData.DurationInMinutes.HasValue ? assessmentData.DurationInMinutes.Value.ToString(CultureInfo.InvariantCulture) : "Unknown"
            });
            tokens.Add(new DataToken()
            {
                Name = "Assessment Mandatory To Solve All Questions", SystemName = "AssessmentMandatoryToSolveAll", Value = assessmentData.MandatoryToSolveAll ? "True" : "False"
            });
        }
Esempio n. 5
0
 public static AssessmentStudent ToEntity(this AssessmentStudentModel model, AssessmentStudent destination)
 {
     return(model.MapTo(destination));
 }
Esempio n. 6
0
 public static AssessmentStudentModel ToModel(this AssessmentStudent entity)
 {
     return(entity.MapTo <AssessmentStudent, AssessmentStudentModel>());
 }