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)); }
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)); }
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); }
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)); }