Exemple #1
0
        private ReportCardDTOItem ConvertToReportCardDTOItem(FormToTeacherSubject fts, IEnumerable <Mark> studentMarks)
        {
            IList <int> firstSemesterMarks  = new List <int>();
            IList <int> secondSemesterMarks = new List <int>();

            int firstSemesterSum  = 0;
            int secondSemesterSum = 0;

            foreach (var mark in studentMarks)
            {
                if (mark.Semester == 0)
                {
                    firstSemesterMarks.Add(mark.MarkValue);
                    firstSemesterSum += mark.MarkValue;
                }
                else
                {
                    secondSemesterMarks.Add(mark.MarkValue);
                    secondSemesterSum += mark.MarkValue;
                }
            }

            ReportCardDTOItem item = new ReportCardDTOItem
            {
                Subject             = fts.TeacherToSubject.Subject.Id + ", " + fts.TeacherToSubject.Subject.Name,
                Teacher             = fts.TeacherToSubject.Teacher.Id + ", " + fts.TeacherToSubject.Teacher.LastName + " " + fts.TeacherToSubject.Teacher.FirstName,
                FirstSemesterMarks  = firstSemesterMarks,
                SecondSemesterMarks = secondSemesterMarks
            };

            if (firstSemesterMarks.Count == 0)
            {
                item.FirstSemesterAverageMark = null;
            }
            else
            {
                item.FirstSemesterAverageMark = (double)firstSemesterSum / firstSemesterMarks.Count;
            }
            if (secondSemesterMarks.Count == 0)
            {
                item.SecondSemesterAverageMark = null;
            }
            else
            {
                item.SecondSemesterAverageMark = (double)secondSemesterSum / secondSemesterMarks.Count;
            }

            return(item);
        }
Exemple #2
0
        //REPORT CARD
        public ReportCardDTO GetReportCardForStudentId(string studentId)
        {
            Student foundStudent = db.StudentsRepository.GetByID(studentId);

            if (foundStudent == null)
            {
                throw new HttpException("Student with id: " + studentId + " was not found.");
            }

            ReportCardDTO reportCard = new ReportCardDTO
            {
                SchoolYear       = foundStudent.Form.Started.Year,
                StudentId        = foundStudent.Id,
                Student          = foundStudent.FirstName + " " + foundStudent.LastName,
                Form             = foundStudent.Form.Grade + "-" + foundStudent.Form.Tag,
                AttendingTeacher = foundStudent.Form.AttendingTeacher.Id + ", " + foundStudent.Form.AttendingTeacher.FirstName + " " + foundStudent.Form.AttendingTeacher.LastName,
                Parent           = foundStudent.Parent.Id + ", " + foundStudent.Parent.FirstName + " " + foundStudent.Parent.LastName
            };

            IList <ReportCardDTOItem> classes = new List <ReportCardDTOItem>();

            IEnumerable <FormToTeacherSubject> studentFormFTSs = db.FormsToTeacherSubjectsRepository.GetByFormIdOnlyActive(foundStudent.Form.Id);

            foreach (var fts in studentFormFTSs)
            {
                IEnumerable <Mark> studentMarks = db.MarksRepository.GetByFTSIdAndStudentId(fts.Id, foundStudent.Id);
                ReportCardDTOItem  item         = ConvertToReportCardDTOItem(fts, studentMarks);
                classes.Add(item);
            }

            classes            = classes.OrderBy(x => x.Subject).ToList();
            reportCard.Classes = classes;

            emailsService.CreateReportCardMail(foundStudent.Id, reportCard);

            return(reportCard);
        }