Ejemplo n.º 1
0
        public MemoryStream GenerateCSV()
        {
            MemoryStream outStream = new MemoryStream();
            StreamWriter writer    = new StreamWriter(outStream);

            // Headings
            writer.Write("School_id" + delimiter);
            writer.Write("Section_id" + delimiter);
            writer.Write("Student_id" + delimiter);
            writer.Write(Environment.NewLine);

            StudentClassEnrolmentRepository studentClassEnrolmentRepo = new StudentClassEnrolmentRepository(_dbConnectionString);

            List <StudentClassEnrolment> studentEnrolments = studentClassEnrolmentRepo.GetAll();

            foreach (StudentClassEnrolment sa in studentEnrolments)
            {
                writer.Write(stringContainer + sa.Class.School.DAN + stringContainer + delimiter);
                writer.Write(stringContainer + sa.Class.iClassID + stringContainer + delimiter);
                writer.Write(stringContainer + sa.Student.StudentNumber + stringContainer + delimiter);
                writer.Write(Environment.NewLine);
            }

            writer.Flush();
            outStream.Flush();
            return(outStream);
        }
Ejemplo n.º 2
0
        // This file contains:
        //  Student history marks
        //  Student currently enroled classes that have a credit

        public MemoryStream GenerateCSV()
        {
            MemoryStream outStream = new MemoryStream();
            StreamWriter writer    = new StreamWriter(outStream);

            // Headings
            writer.Write("StudentID" + delimiter);
            writer.Write("CourseCode" + delimiter);
            writer.Write("CourseName" + delimiter);
            writer.Write("GradeLevel" + delimiter);
            writer.Write("GradeMark" + delimiter);
            writer.Write("CreditValue" + delimiter);
            writer.Write("DateCourseComplete" + delimiter);
            writer.Write("HSCourse" + delimiter);
            writer.Write("CoursePart");
            writer.Write(Environment.NewLine);

            StudentRepository studentRepo = new StudentRepository(_dbConnectionString);
            StudentClassEnrolmentRepository enrolmentRepo   = new StudentClassEnrolmentRepository(_dbConnectionString);
            StudentHistoryMarkRepository    historyMarkRepo = new StudentHistoryMarkRepository(_dbConnectionString);


            // Load all enrolments into a dictionary for easier parsing
            Dictionary <int, List <StudentClassEnrolment> > enrolmentsByStudent = new Dictionary <int, List <StudentClassEnrolment> >();

            foreach (StudentClassEnrolment e in enrolmentRepo.GetAll())
            {
                if (!enrolmentsByStudent.ContainsKey(e.Student.iStudentID))
                {
                    enrolmentsByStudent.Add(e.Student.iStudentID, new List <StudentClassEnrolment>());
                }

                enrolmentsByStudent[e.Student.iStudentID].Add(e);
            }

            foreach (Student student in studentRepo.GetAll().Where(s => gradeList.Contains(s.Grade)))
            {
                // ************************************
                // History marks
                // ************************************
                List <StudentHistoryMark> studentHistoryMarks = historyMarkRepo.GetForStudent(student).Where(x => x.CreditsPossible > 0).ToList();

                if (studentHistoryMarks.Count > 0)
                {
                    foreach (StudentHistoryMark mark in studentHistoryMarks)
                    {
                        writer.Write(stringContainer + student.StudentNumber + stringContainer + delimiter);
                        writer.Write(stringContainer + mark.CourseCode + stringContainer + delimiter);
                        writer.Write(stringContainer + mark.CourseName + stringContainer + delimiter);
                        writer.Write(stringContainer + mark.Grade + stringContainer + delimiter);
                        writer.Write(stringContainer + mark.NumericMark + stringContainer + delimiter); // In progress courses have 0 grades
                        writer.Write(stringContainer + mark.CreditsEarned + stringContainer + delimiter);
                        writer.Write(stringContainer + mark.CompletionDate.ToString("yyyy-MM-dd") + stringContainer + delimiter);
                        writer.Write(stringContainer + ((mark.CreditsEarned > 0) ? 1 : 0) + stringContainer + delimiter);
                        writer.Write(stringContainer + "" + stringContainer); // This column isn't really used
                        writer.Write(Environment.NewLine);
                    }
                }

                // ************************************
                // Currently enrolled classes
                // ************************************
                if (enrolmentsByStudent.ContainsKey(student.iStudentID))
                {
                    foreach (StudentClassEnrolment enrolment in enrolmentsByStudent[student.iStudentID].Where(e => e.Class.Course.Credits > 0))
                    {
                        writer.Write(stringContainer + student.StudentNumber + stringContainer + delimiter);
                        writer.Write(stringContainer + enrolment.Class.Course.CourseCode + stringContainer + delimiter);
                        writer.Write(stringContainer + enrolment.Class.Course.Name + stringContainer + delimiter);
                        writer.Write(stringContainer + student.Grade + stringContainer + delimiter);
                        writer.Write(stringContainer + "0" + stringContainer + delimiter); // In progress courses have 0 grades
                        writer.Write(stringContainer + enrolment.Class.Course.Credits + stringContainer + delimiter);
                        writer.Write(stringContainer + "" + stringContainer + delimiter);  // In progress courses have empty dates
                        writer.Write(stringContainer + ((enrolment.Class.Course.Credits > 0) ? 1 : 0) + stringContainer + delimiter);
                        writer.Write(stringContainer + "" + stringContainer);              // This column isn't really used
                        writer.Write(Environment.NewLine);
                    }
                }
            }

            writer.Flush();
            outStream.Flush();
            return(outStream);
        }
Ejemplo n.º 3
0
        public MemoryStream GenerateCSV()
        {
            MemoryStream outStream = new MemoryStream();
            StreamWriter writer    = new StreamWriter(outStream);

            // Headings
            writer.Write("School_id" + delimiter);
            writer.Write("Section_id" + delimiter);
            writer.Write("Teacher_id" + delimiter);
            writer.Write("Teacher_2_id" + delimiter);
            writer.Write("Teacher_3_id" + delimiter);
            writer.Write("Teacher_4_id" + delimiter);
            writer.Write("Teacher_5_id" + delimiter);
            writer.Write("Teacher_6_id" + delimiter);
            writer.Write("Teacher_7_id" + delimiter);
            writer.Write("Teacher_8_id" + delimiter);
            writer.Write("Teacher_9_id" + delimiter);
            writer.Write("Teacher_10_id" + delimiter);
            writer.Write("Name" + delimiter);
            writer.Write("Section_number" + delimiter);
            writer.Write("Grade" + delimiter);
            writer.Write("Course_name" + delimiter);
            writer.Write("Course_number" + delimiter);
            writer.Write("Course_description" + delimiter);
            writer.Write("Period" + delimiter);
            writer.Write("Subject" + delimiter);
            writer.Write("Term_name" + delimiter);
            writer.Write("Term_start" + delimiter);
            writer.Write("Term_end" + delimiter);

            writer.Write(Environment.NewLine);

            SchoolClassRepository screpo   = new SchoolClassRepository(_dbConnectionString);
            List <SchoolClass>    sections = screpo.GetAll();

            TeacherAssignmentRepository teacherAssignmentRepo  = new TeacherAssignmentRepository(_dbConnectionString);
            List <TeacherAssignment>    allTeachingAssignments = teacherAssignmentRepo.GetAll();

            // Sort teacher assignments into a dictionary for easier consumption
            // Only send up classes that have teachers assigned
            Dictionary <int, List <TeacherAssignment> > assignmentsByClassID = new Dictionary <int, List <TeacherAssignment> >();

            // Don't send empty classes, so get enrolment counts for each class
            StudentClassEnrolmentRepository enrolmentRepo            = new StudentClassEnrolmentRepository(_dbConnectionString);
            Dictionary <int, int>           enrolmentCountsByClassID = enrolmentRepo.GetEnrolmentCountsByClassID();

            foreach (TeacherAssignment ta in allTeachingAssignments)
            {
                if (ta.Class != null)
                {
                    if (!assignmentsByClassID.ContainsKey(ta.Class.iClassID))
                    {
                        assignmentsByClassID.Add(ta.Class.iClassID, new List <TeacherAssignment>());
                    }
                    if (ta.Teacher.TeachingCertificateNumber.Length > 0)
                    {
                        assignmentsByClassID[ta.Class.iClassID].Add(ta);
                    }
                }
            }

            foreach (SchoolClass sc in sections)
            {
                if (enrolmentCountsByClassID.ContainsKey(sc.iClassID))
                {
                    if (enrolmentCountsByClassID[sc.iClassID] > 0)
                    {
                        if (assignmentsByClassID.ContainsKey(sc.iClassID))
                        {
                            List <TeacherAssignment> thisClassAssignments = assignmentsByClassID[sc.iClassID];
                            if (thisClassAssignments.Count > 0)
                            {
                                writer.Write(stringContainer + sc.School.DAN + stringContainer + delimiter);                                                                                                            // School id
                                writer.Write(stringContainer + sc.iClassID + stringContainer + delimiter);                                                                                                              // Section id
                                writer.Write(stringContainer + (thisClassAssignments.Count >= 1 ? thisClassAssignments[0].Teacher.TeachingCertificateNumber.ToString() : string.Empty) + stringContainer + delimiter);  // Teacher 1
                                writer.Write(stringContainer + (thisClassAssignments.Count >= 2 ? thisClassAssignments[1].Teacher.TeachingCertificateNumber.ToString() : string.Empty) + stringContainer + delimiter);  // Teacher 2
                                writer.Write(stringContainer + (thisClassAssignments.Count >= 3 ? thisClassAssignments[2].Teacher.TeachingCertificateNumber.ToString() : string.Empty) + stringContainer + delimiter);  // Teacher 3
                                writer.Write(stringContainer + (thisClassAssignments.Count >= 4 ? thisClassAssignments[3].Teacher.TeachingCertificateNumber.ToString() : string.Empty) + stringContainer + delimiter);  // Teacher 4
                                writer.Write(stringContainer + (thisClassAssignments.Count >= 5 ? thisClassAssignments[4].Teacher.TeachingCertificateNumber.ToString() : string.Empty) + stringContainer + delimiter);  // Teacher 5
                                writer.Write(stringContainer + (thisClassAssignments.Count >= 6 ? thisClassAssignments[5].Teacher.TeachingCertificateNumber.ToString() : string.Empty) + stringContainer + delimiter);  // Teacher 6
                                writer.Write(stringContainer + (thisClassAssignments.Count >= 7 ? thisClassAssignments[6].Teacher.TeachingCertificateNumber.ToString() : string.Empty) + stringContainer + delimiter);  // Teacher 7
                                writer.Write(stringContainer + (thisClassAssignments.Count >= 8 ? thisClassAssignments[7].Teacher.TeachingCertificateNumber.ToString() : string.Empty) + stringContainer + delimiter);  // Teacher 8
                                writer.Write(stringContainer + (thisClassAssignments.Count >= 9 ? thisClassAssignments[8].Teacher.TeachingCertificateNumber.ToString() : string.Empty) + stringContainer + delimiter);  // Teacher 9
                                writer.Write(stringContainer + (thisClassAssignments.Count >= 10 ? thisClassAssignments[9].Teacher.TeachingCertificateNumber.ToString() : string.Empty) + stringContainer + delimiter); // Teacher 10
                                writer.Write(stringContainer + sc.Name + stringContainer + delimiter);                                                                                                                  // Name
                                writer.Write(stringContainer + sc.Section + stringContainer + delimiter);                                                                                                               // Section number
                                writer.Write(stringContainer + "" + stringContainer + delimiter);                                                                                                                       // Grade
                                writer.Write(stringContainer + sc.Course.Name + stringContainer + delimiter);                                                                                                           // Course Name
                                writer.Write(stringContainer + sc.Course.CourseCode + stringContainer + delimiter);                                                                                                     // Course Number
                                writer.Write(stringContainer + "" + stringContainer + delimiter);                                                                                                                       // Course Description
                                writer.Write(stringContainer + "" + stringContainer + delimiter);                                                                                                                       // Period
                                writer.Write(stringContainer + "" + stringContainer + delimiter);                                                                                                                       // Subject
                                writer.Write(stringContainer + "" + stringContainer + delimiter);                                                                                                                       // Term name
                                writer.Write(stringContainer + "" + stringContainer + delimiter);                                                                                                                       // Term start
                                writer.Write(stringContainer + "" + stringContainer + delimiter);                                                                                                                       // Term end
                                writer.Write(Environment.NewLine);
                            }
                        }
                    }
                }
            }

            writer.Flush();
            outStream.Flush();
            return(outStream);
        }