public IEnumerable <AcademicTranscript> AddExamToTranscript(Examination examination)
        {
            var rs = new List <AcademicTranscript>();
            // get all active classes
            var activeClasses = classRepository.GetAllActive();

            foreach (Class clazz in activeClasses)
            {
                // get all active student of class
                var studentIds = classRepository.GetAllClassMember(clazz.Id).Select(cm => cm.StudentId);
                // get all active class subject of class
                var classSubjects = from cs in clazz.ClassSubjects
                                    where cs.Status == (int)ClassSubjectEnums.STATUS_ACTIVE
                                    select cs;
                foreach (int StudentId in studentIds)
                {
                    foreach (ClassSubject cs in classSubjects)
                    {
                        var tmp = new AcademicTranscript
                        {
                            Id             = 0,
                            Status         = (int)TranscriptEnums.STATUS_ACTIVE,
                            Score          = null,
                            StudentId      = StudentId,
                            ExamId         = examination.Id,
                            ClassSubjectId = cs.Id,
                            SubjectName    = cs.Subject.Name,
                            ExamName       = examination.Name,
                            PercentRate    = examination.PercentRate
                        };
                        rs.Add(tmp);
                    }
                }
            }
            return(repository.AddTranscripts(rs));
        }