public virtual ActionResult Edit(ParentCourseGradesModel parentCourseGradesModel)
        {
            if (!ModelState.IsValid)
            {
                return View(parentCourseGradesModel);
            }
            if (parentCourseGradesModel.FindParentCourseModel.ParentCourseId == null ||
                parentCourseGradesModel.FindParentCourseModel.SessionId == null) 
                return View(parentCourseGradesModel);

            var students = _parentCourseRepository.GetStudents((int)parentCourseGradesModel.FindParentCourseModel.SessionId, (Guid)parentCourseGradesModel.FindParentCourseModel.ParentCourseId);

            _parentCourseRepository.GetParentCourseGrades((Guid) parentCourseGradesModel.FindParentCourseModel.ParentCourseId, (int) parentCourseGradesModel.FindParentCourseModel.SessionId);

            var studentsToBeGraded =  students.Where(
                s =>
                    parentCourseGradesModel.ParentGradesModelList.Any(
                        gradeModel => gradeModel.StudentUSI == s.StudentUSI)).ToList();

            _parentCourseGradesModelToStudentsMapper.Map(parentCourseGradesModel, studentsToBeGraded);

            _genericRepository.Save();

            return RedirectToAction(MVC.ParentCourseGrade.Get(parentCourseGradesModel.FindParentCourseModel.SessionId, parentCourseGradesModel.FindParentCourseModel.ParentCourseId));
        }
        public void Map(ParentCourseGradesModel parentCourseGradesModel, List<Data.Entities.Student> studentsToBeGraded)
        {
            var parentCourseId = (Guid)parentCourseGradesModel.FindParentCourseModel.ParentCourseId;
            var sesssionId = (int) parentCourseGradesModel.FindParentCourseModel.SessionId;

            foreach (var student in studentsToBeGraded)
            {
                if (!student.ParentCourseGrades.IsNullOrEmpty() &&
                    student.ParentCourseGrades.Any(pcg => pcg.ParentCourseId == parentCourseId && pcg.Session.SessionIdentity == sesssionId ))
                {

                    var parentCourseGrade = student.ParentCourseGrades.FirstOrDefault( p =>
                            p.ParentCourseId == parentCourseGradesModel.FindParentCourseModel.ParentCourseId &&
                            p.Session.SessionIdentity == parentCourseGradesModel.FindParentCourseModel.SessionId);

                    _parentCourseGradeModelToParentCourseGradeMapper.Map(parentCourseGradesModel, student.StudentUSI, parentCourseGrade);

                }
                else
                {
                    var parentCourseGradeForStudent = _parentCourseGradeModelToParentCourseGradeMapper.Build(parentCourseGradesModel, student.StudentUSI);
                    student.ParentCourseGrades.Add(parentCourseGradeForStudent);
                }
            }
        }
        public ParentCourseGrade Build(ParentCourseGradesModel parentCourseGradesModel, int studentUsi)
        {
            var session = _sesssionRepository.GetById((int)parentCourseGradesModel.FindParentCourseModel.SessionId);

            var parentCourseGrade = new ParentCourseGrade
            {
                ParentCourseId = (Guid)parentCourseGradesModel.FindParentCourseModel.ParentCourseId,
                SchoolYear = session.SchoolYear,
                TermTypeId = session.TermTypeId,
                SchoolId = session.SchoolId
            };

            Map(parentCourseGradesModel, studentUsi, parentCourseGrade);
            return parentCourseGrade;
        }
        public ParentCourseGrade Build(ParentCourseGradesModel parentCourseGradesModel, int studentUsi)
        {
            var session = _sesssionRepository.GetById((int)parentCourseGradesModel.FindParentCourseModel.SessionId);

            var parentCourseGrade = new ParentCourseGrade
            {
                ParentCourseId = (Guid)parentCourseGradesModel.FindParentCourseModel.ParentCourseId,
                SchoolYear     = session.SchoolYear,
                TermTypeId     = session.TermTypeId,
                SchoolId       = session.SchoolId
            };

            Map(parentCourseGradesModel, studentUsi, parentCourseGrade);
            return(parentCourseGrade);
        }
        public ParentCourseGradesModel Build(List <Data.Entities.Student> students, Data.Entities.Session session, Data.Entities.ParentCourse parentCourse)
        {
            var findParentCourseModel = _sectionToFindParentCourseModelMapper.Build(session, t =>
            {
                t.ParentCourse   = parentCourse.ParentCourseCode + " - " + parentCourse.ParentCourseTitle;
                t.ParentCourseId = parentCourse.Id;
            });

            var grades = students.SelectMany(s => s.ParentCourseGrades);

            var parentGradesModelList = grades.Select(g => _parentCourseGradeToGradeModelMapper.Build(g)).ToList();
            var studentsInParentCourseWithoutGrades = students.Where(s => s.ParentCourseGrades.IsNullOrEmpty()).ToList();

            parentGradesModelList = parentGradesModelList.Concat(studentsInParentCourseWithoutGrades.Select(s => _studentToGradeModelMapper.Build(s))).ToList();


            var parentCourseGradesModel = new ParentCourseGradesModel();

            parentCourseGradesModel.FindParentCourseModel = findParentCourseModel;
            parentCourseGradesModel.ParentGradesModelList = parentGradesModelList.ToList();

            return(parentCourseGradesModel);
        }
예제 #6
0
        public void Map(ParentCourseGradesModel parentCourseGradesModel, List <Data.Entities.Student> studentsToBeGraded)
        {
            var parentCourseId = (Guid)parentCourseGradesModel.FindParentCourseModel.ParentCourseId;
            var sesssionId     = (int)parentCourseGradesModel.FindParentCourseModel.SessionId;

            foreach (var student in studentsToBeGraded)
            {
                if (!student.ParentCourseGrades.IsNullOrEmpty() &&
                    student.ParentCourseGrades.Any(pcg => pcg.ParentCourseId == parentCourseId && pcg.Session.SessionIdentity == sesssionId))
                {
                    var parentCourseGrade = student.ParentCourseGrades.FirstOrDefault(p =>
                                                                                      p.ParentCourseId == parentCourseGradesModel.FindParentCourseModel.ParentCourseId &&
                                                                                      p.Session.SessionIdentity == parentCourseGradesModel.FindParentCourseModel.SessionId);

                    _parentCourseGradeModelToParentCourseGradeMapper.Map(parentCourseGradesModel, student.StudentUSI, parentCourseGrade);
                }
                else
                {
                    var parentCourseGradeForStudent = _parentCourseGradeModelToParentCourseGradeMapper.Build(parentCourseGradesModel, student.StudentUSI);
                    student.ParentCourseGrades.Add(parentCourseGradeForStudent);
                }
            }
        }
        public ParentCourseGradesModel Build(List<Data.Entities.Student> students, Data.Entities.Session session, Data.Entities.ParentCourse parentCourse)
        {

            var findParentCourseModel = _sectionToFindParentCourseModelMapper.Build(session, t =>
            {
                t.ParentCourse = parentCourse.ParentCourseCode +" - "+ parentCourse.ParentCourseTitle;
                t.ParentCourseId = parentCourse.Id;
            });

            var grades = students.SelectMany(s => s.ParentCourseGrades);

            var parentGradesModelList = grades.Select(g => _parentCourseGradeToGradeModelMapper.Build(g)).ToList();
            var studentsInParentCourseWithoutGrades = students.Where(s => s.ParentCourseGrades.IsNullOrEmpty()).ToList();

            parentGradesModelList = parentGradesModelList.Concat(studentsInParentCourseWithoutGrades.Select(s => _studentToGradeModelMapper.Build(s))).ToList();


           var parentCourseGradesModel = new ParentCourseGradesModel();

            parentCourseGradesModel.FindParentCourseModel = findParentCourseModel;
            parentCourseGradesModel.ParentGradesModelList = parentGradesModelList.ToList();

            return parentCourseGradesModel;
        }
        public void Map(ParentCourseGradesModel source, int studentUsi, ParentCourseGrade target)
        {

                target.GradeEarned = FindGradeOfStudentInParentGradesModelList(source.ParentGradesModelList, studentUsi);
        }
 public void Map(ParentCourseGradesModel source, int studentUsi, ParentCourseGrade target)
 {
     target.GradeEarned = FindGradeOfStudentInParentGradesModelList(source.ParentGradesModelList, studentUsi);
 }