コード例 #1
0
        public IEnumerable <AcademicTranscript> AddMultipleTranscript(List <int> studentIds, int classId)
        {
            var exams         = examRepository.GetAll();
            var classSubjects = classRepository.GetSubjectOfClass(classId);
            var rs            = new List <AcademicTranscript>();

            foreach (int StudentId in studentIds)
            {
                foreach (ClassSubject cs in classSubjects)
                {
                    foreach (Examination ex in exams)
                    {
                        var tmp = new AcademicTranscript
                        {
                            Id             = 0,
                            Status         = (int)TranscriptEnums.STATUS_ACTIVE,
                            Score          = null,
                            StudentId      = StudentId,
                            ExamId         = ex.Id,
                            ClassSubjectId = cs.Id,
                            SubjectName    = cs.Subject.Name,
                            ExamName       = ex.Name,
                            PercentRate    = ex.PercentRate
                        };
                        rs.Add(tmp);
                    }
                }
            }
            return(repository.AddTranscripts(rs));
        }
コード例 #2
0
        public IEnumerable <AcademicTranscript> AddSubjectToClassTranscript(int classId, List <ClassSubject> classSubjects)
        {
            var studentIds = classRepository.GetAllClassMember(classId).Select(cm => cm.StudentId);
            var exams      = examRepository.GetAll();
            var rs         = new List <AcademicTranscript>();

            foreach (int StudentId in studentIds)
            {
                foreach (ClassSubject cs in classSubjects)
                {
                    foreach (Examination ex in exams)
                    {
                        var tmp = new AcademicTranscript
                        {
                            Id             = 0,
                            Status         = (int)TranscriptEnums.STATUS_ACTIVE,
                            Score          = null,
                            StudentId      = StudentId,
                            ExamId         = ex.Id,
                            ClassSubjectId = cs.Id,
                            SubjectName    = cs.Subject.Name,
                            ExamName       = ex.Name,
                            PercentRate    = ex.PercentRate
                        };
                        rs.Add(tmp);
                    }
                }
            }
            return(repository.AddTranscripts(rs));
        }
コード例 #3
0
        public void UpdateTranscripts(List <AcademicTranscript> transcripts)
        {
            var ids     = transcripts.Select(t => t.Id).ToList();
            var origins = repository.GetTranscripts(ids);

            if (origins.Count != transcripts.Count)
            {
                throw new Exception("Wrong infomation of transcript");
            }
            Dictionary <int, AcademicTranscript> originMap = new Dictionary <int, AcademicTranscript>();

            origins.ForEach(at => originMap.Add(at.Id, at));
            transcripts.ForEach(at =>
            {
                AcademicTranscript origin = null;
                if (originMap.TryGetValue(at.Id, out origin))
                {
                    origin.Score = at.Score;
                }
                else
                {
                    throw new Exception("Not found a specific row of transcript");
                }
            });
            repository.UpdateTranscripts(origins);
        }
コード例 #4
0
        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));
        }