Example #1
0
        protected void btnGenerate_Click(object sender, EventArgs e)
        {
            // Parse the selected school ID
            int schoolID = -1;

            if (int.TryParse(drpSchools.SelectedValue, out schoolID))
            {
                School selectedSchool = null;
                using (SqlConnection connection = new SqlConnection(sqlConnectionString))
                {
                    // Load the school
                    selectedSchool = School.loadThisSchool(connection, schoolID);

                    if (selectedSchool != null)
                    {
                        // Load the selected student
                        Student selectedStudent = Student.loadThisStudent(connection, drpStudents.SelectedValue);

                        if (selectedStudent != null)
                        {
                            List <Student> selectedStudents = new List <Student>();
                            selectedStudents.Add(selectedStudent);

                            // Load checked report periods
                            List <int>          selectedReportPeriodIDs = new List <int>();
                            List <ReportPeriod> selectedReportPeriods   = new List <ReportPeriod>();

                            foreach (ListItem item in chkReportPeriods.Items)
                            {
                                if (item.Selected)
                                {
                                    int parsedValue = -1;
                                    if (int.TryParse(item.Value, out parsedValue))
                                    {
                                        if (!selectedReportPeriodIDs.Contains(parsedValue))
                                        {
                                            selectedReportPeriodIDs.Add(parsedValue);
                                        }
                                    }
                                }
                            }

                            if (selectedReportPeriodIDs.Count > 0)
                            {
                                foreach (int reportPeriodID in selectedReportPeriodIDs)
                                {
                                    ReportPeriod loadedReportPeriod = ReportPeriod.loadThisReportPeriod(connection, reportPeriodID);
                                    if (loadedReportPeriod != null)
                                    {
                                        selectedReportPeriods.Add(loadedReportPeriod);
                                    }
                                }

                                // Load student mark data
                                List <Student> studentsWithMarks = new List <Student>();
                                foreach (Student student in selectedStudents)
                                {
                                    studentsWithMarks.Add(LSKYCommon.loadStudentMarkData(connection, student, selectedReportPeriods));
                                }

                                // Options
                                bool doubleSidedMode = false;
                                if (chkDoubleSidedMode.Checked)
                                {
                                    doubleSidedMode = true;
                                }

                                bool anonymize = false;
                                if (chkAnonymize.Checked)
                                {
                                    anonymize = true;
                                }

                                bool showPhotos = false;
                                if (chkShowPhotos.Checked)
                                {
                                    showPhotos = true;
                                }

                                bool showClassAttendance = false;
                                if (chkClassAttendance.Checked)
                                {
                                    showClassAttendance = true;
                                }

                                bool showLegends = true;

                                bool showAttendanceSummary = false;
                                if (chkShowAttendanceSummary.Checked)
                                {
                                    showAttendanceSummary = true;
                                }

                                string adminComment = txtAdminComment.Text;

                                // Send the report card
                                String fileName = "ReportCards_" + selectedStudent.getStudentID() + "_" + DateTime.Today.Year + "_" + DateTime.Today.Month + "_" + DateTime.Today.Day + ".pdf";
                                if ((selectedReportPeriods.Count > 0) && (selectedStudents.Count > 0))
                                {
                                    sendPDF(PDFReportCardParts.GeneratePDF(selectedStudents, selectedReportPeriods, anonymize, showPhotos, doubleSidedMode, showClassAttendance, showLegends, showAttendanceSummary, adminComment), fileName);
                                }
                            }
                            else
                            {
                                // No report periods were selected - should display some kind of error here
                            }
                        }
                    }
                }
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            List <Student>      students              = new List <Student>();
            List <Student>      displayedStudents     = new List <Student>();
            List <ReportPeriod> selectedReportPeriods = new List <ReportPeriod>();

            bool anonymize = false;

            if (!string.IsNullOrEmpty(Request.QueryString["anon"]))
            {
                anonymize = true;
            }

            bool showPhoto = false;

            if ((!string.IsNullOrEmpty(Request.QueryString["showphoto"])) || (!string.IsNullOrEmpty(Request.QueryString["showphotos"])))
            {
                showPhoto = true;
            }

            bool doubleSided = false;

            if (!string.IsNullOrEmpty(Request.QueryString["doublesided"]))
            {
                doubleSided = true;
            }

            bool showClassAttendance = false;

            if (!string.IsNullOrEmpty(Request.QueryString["showclassattendance"]))
            {
                showClassAttendance = true;
            }

            bool showLegends = false;

            if ((!string.IsNullOrEmpty(Request.QueryString["showlegends"])) || (!string.IsNullOrEmpty(Request.QueryString["showlegend"])))
            {
                showLegends = true;
            }

            bool showAttendanceSummary = false;

            if ((!string.IsNullOrEmpty(Request.QueryString["showattendancesummary"])) || (!string.IsNullOrEmpty(Request.QueryString["showattendancesummaries"])))
            {
                showAttendanceSummary = true;
            }

            using (SqlConnection connection = new SqlConnection(dbConnectionString))
            {
                // Parse student IDs
                if (!string.IsNullOrEmpty(Request.QueryString["students"]))
                {
                    foreach (string student in Request.QueryString["students"].Split(';'))
                    {
                        if (!string.IsNullOrEmpty(student))
                        {
                            int student_id = -1;
                            if (int.TryParse(student, out student_id))
                            {
                                students.Add(Student.loadThisStudent(connection, student_id.ToString()));
                            }
                        }
                    }

                    foreach (string rp in Request.QueryString["reportperiods"].Split(';'))
                    {
                        if (!string.IsNullOrEmpty(rp))
                        {
                            int rp_id = -1;
                            if (int.TryParse(rp, out rp_id))
                            {
                                selectedReportPeriods.Add(ReportPeriod.loadThisReportPeriod(connection, rp_id));
                            }
                        }
                    }
                }
            }

            selectedReportPeriods.Sort();

            using (SqlConnection connection = new SqlConnection(dbConnectionString))
            {
                foreach (Student student in students)
                {
                    if (student != null)
                    {
                        Stopwatch studentStopWatch = new Stopwatch();
                        studentStopWatch.Start();
                        displayedStudents.Add(LSKYCommon.loadStudentMarkData(connection, student, selectedReportPeriods));
                        studentStopWatch.Stop();
                    }
                }
                students.Clear();
            }

            String fileName = "ReportCards_" + DateTime.Today.Year + "_" + DateTime.Today.Month + "_" + DateTime.Today.Day + ".pdf";

            if ((selectedReportPeriods.Count > 0) && (displayedStudents.Count > 0))
            {
                sendPDF(PDFReportCardParts.GeneratePDF(displayedStudents, selectedReportPeriods, anonymize, showPhoto, doubleSided, showClassAttendance, showLegends, showAttendanceSummary, string.Empty), fileName);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            List <Student>      students              = new List <Student>();
            List <Student>      displayedStudents     = new List <Student>();
            List <ReportPeriod> selectedReportPeriods = new List <ReportPeriod>();

            bool anonymize = false;

            if (!string.IsNullOrEmpty(Request.QueryString["anon"]))
            {
                anonymize = true;
            }


            using (SqlConnection connection = new SqlConnection(sqlConnectionString))
            {
                // Parse student IDs
                if (!string.IsNullOrEmpty(Request.QueryString["students"]))
                {
                    foreach (string student in Request.QueryString["students"].Split(';'))
                    {
                        if (!string.IsNullOrEmpty(student))
                        {
                            int student_id = -1;
                            if (int.TryParse(student, out student_id))
                            {
                                students.Add(Student.loadThisStudent(connection, student_id.ToString()));
                            }
                        }
                    }

                    foreach (string rp in Request.QueryString["reportperiods"].Split(';'))
                    {
                        if (!string.IsNullOrEmpty(rp))
                        {
                            int rp_id = -1;
                            if (int.TryParse(rp, out rp_id))
                            {
                                selectedReportPeriods.Add(ReportPeriod.loadThisReportPeriod(connection, rp_id));
                            }
                        }
                    }
                }
            }

            selectedReportPeriods.Sort();

            using (SqlConnection connection = new SqlConnection(sqlConnectionString))
            {
                foreach (Student student in students)
                {
                    if (student != null)
                    {
                        Stopwatch studentStopWatch = new Stopwatch();
                        studentStopWatch.Start();
                        displayedStudents.Add(LSKYCommon.loadStudentMarkData(connection, student, selectedReportPeriods));
                        studentStopWatch.Stop();
                    }
                }
                students.Clear();
            }


            // Display data
            Response.Write("<BR><B>DEBUG DATA</b>");
            foreach (Student student in displayedStudents)
            {
                Response.Write("<BR><hr><BR><b>" + student + "</B>");
                Response.Write("<BR><b>Absense entries: </b>" + student.absences.Count);
                Response.Write("<BR>&nbsp;<b>Track:</b> " + student.track);
                foreach (Term term in student.track.terms)
                {
                    Response.Write("<BR>&nbsp;<b>Term:</b> " + term);
                    foreach (ReportPeriod rp in term.ReportPeriods)
                    {
                        Response.Write("<BR>&nbsp;&nbsp;<b>Report Period:</b> " + rp);
                        Response.Write("<BR>&nbsp;&nbsp;&nbsp;<b>Marks: </b> " + rp.marks.Count);
                        foreach (Mark mark in rp.marks)
                        {
                            Response.Write("<BR>&nbsp;&nbsp;&nbsp;&nbsp;<b>Mark: </b> " + mark);
                        }
                    }
                    Response.Write("<BR><BR>&nbsp;&nbsp;<b>Classes:</b> " + term.Courses.Count);
                    foreach (SchoolClass c in term.Courses)
                    {
                        Response.Write("<BR><BR>&nbsp;&nbsp;<b>Class:</b> " + c);
                        Response.Write("<BR>&nbsp;&nbsp;&nbsp;<b>Teacher:</b> " + c.teacherName);
                        Response.Write("<BR>&nbsp;&nbsp;&nbsp;<b>Marks:</b> " + c.Marks.Count);
                        Response.Write("<BR>&nbsp;&nbsp;&nbsp;<b>Outcomes:</b> " + c.Outcomes.Count);
                        Response.Write("<BR>&nbsp;&nbsp;&nbsp;<b>Outcome Marks:</b> " + c.OutcomeMarks.Count);
                        Response.Write("<BR>&nbsp;&nbsp;&nbsp;<b>Life Skills:</b> " + c.LifeSkills.Count);
                        Response.Write("<BR>&nbsp;&nbsp;&nbsp;<b>Life Skills Marks:</b> " + c.LifeSkillMarks.Count);
                        foreach (ReportPeriod rp in term.ReportPeriods)
                        {
                            Response.Write("<BR>&nbsp;&nbsp;&nbsp;<b>Report Period:</b> " + rp);
                            foreach (Mark m in c.Marks)
                            {
                                if (m.reportPeriodID == rp.ID)
                                {
                                    Response.Write("<BR>&nbsp;&nbsp;&nbsp;&nbsp;<b>Mark</b> " + m);
                                }
                            }
                            foreach (OutcomeMark om in c.OutcomeMarks)
                            {
                                if (om.reportPeriodID == rp.ID)
                                {
                                    Response.Write("<BR>&nbsp;&nbsp;&nbsp;&nbsp;<b>OutcomeMark:</b> " + om);
                                }
                            }
                        }
                        Response.Write("<BR>&nbsp;&nbsp;&nbsp;<b>Outcomes:</b> " + c.Outcomes.Count);
                        foreach (Outcome o in c.Outcomes)
                        {
                            Response.Write("<BR>&nbsp;&nbsp;&nbsp;&nbsp;<b>Outcome:</b> " + o);
                            foreach (OutcomeMark om in o.marks)
                            {
                                Response.Write("<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutcomeMark:</b> " + om);
                            }
                        }

                        Response.Write("<BR>&nbsp;&nbsp;&nbsp;<b>Life Skills / SLBs:</b> " + c.LifeSkills.Count);
                        foreach (Outcome o in c.LifeSkills)
                        {
                            Response.Write("<BR>&nbsp;&nbsp;&nbsp;&nbsp;<b>Outcome</b> " + o);
                            foreach (OutcomeMark om in o.marks)
                            {
                                Response.Write("<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutcomeMark:</b> " + om);
                            }
                        }
                    }
                }
            }
        }
        protected void btnReportPeriod_Click(object sender, EventArgs e)
        {
            string selectedGrade = drpGrades.SelectedValue;

            // Parse the selected school ID
            int schoolID = -1;

            if (int.TryParse(drpSchools.SelectedValue, out schoolID))
            {
                School selectedSchool = null;
                using (SqlConnection connection = new SqlConnection(sqlConnectionString))
                {
                    // Load the school
                    selectedSchool = School.loadThisSchool(connection, schoolID);

                    if (selectedSchool != null)
                    {
                        // Load all students
                        List <Student> schoolStudents = new List <Student>();
                        schoolStudents = Student.loadStudentsFromThisSchool(connection, schoolID);

                        // Filter out the ones for that grade
                        List <Student> selectedStudents = new List <Student>();
                        foreach (Student student in schoolStudents)
                        {
                            if (student != null)
                            {
                                if (student.getGrade() == selectedGrade)
                                {
                                    selectedStudents.Add(student);
                                }
                            }
                        }

                        // Load checked report periods
                        List <int>          selectedReportPeriodIDs = new List <int>();
                        List <ReportPeriod> selectedReportPeriods   = new List <ReportPeriod>();

                        foreach (ListItem item in chkReportPeriods.Items)
                        {
                            if (item.Selected)
                            {
                                int parsedValue = -1;
                                if (int.TryParse(item.Value, out parsedValue))
                                {
                                    if (!selectedReportPeriodIDs.Contains(parsedValue))
                                    {
                                        selectedReportPeriodIDs.Add(parsedValue);
                                    }
                                }
                            }
                        }

                        foreach (int reportPeriodID in selectedReportPeriodIDs)
                        {
                            ReportPeriod loadedReportPeriod = ReportPeriod.loadThisReportPeriod(connection, reportPeriodID);
                            if (loadedReportPeriod != null)
                            {
                                selectedReportPeriods.Add(loadedReportPeriod);
                            }
                        }

                        // Load student mark data
                        List <Student> studentsWithMarks = new List <Student>();
                        foreach (Student student in selectedStudents)
                        {
                            studentsWithMarks.Add(LSKYCommon.loadStudentMarkData(connection, student, selectedReportPeriods));
                        }

                        // Sort students
                        List <Student> reportcardStudents = new List <Student>();
                        if (chkSortByHomeRoom.Checked)
                        {
                            reportcardStudents = studentsWithMarks.OrderBy(c => c.getHomeRoom()).ThenBy(c => c.getLastName()).ToList <Student>();
                        }
                        else
                        {
                            reportcardStudents = studentsWithMarks.OrderBy(c => c.getLastName()).ToList <Student>();
                        }

                        // Options
                        bool doubleSidedMode = false;
                        if (chkDoubleSidedMode.Checked)
                        {
                            doubleSidedMode = true;
                        }

                        bool anonymize = false;
                        if (chkAnonymize.Checked)
                        {
                            anonymize = true;
                        }

                        bool showPhotos = false;
                        if (chkShowPhotos.Checked)
                        {
                            showPhotos = true;
                        }

                        bool showClassAttendance = false;
                        if (chkClassAttendance.Checked)
                        {
                            showClassAttendance = true;
                        }

                        bool showLegends = true;

                        bool showAttendanceSummary = false;
                        if (chkShowAttendanceSummary.Checked)
                        {
                            showAttendanceSummary = true;
                        }

                        string adminComment = txtAdminComment.Text;

                        // Send the report card
                        String fileName = "ReportCards_" + LSKYCommon.removeSpaces(selectedSchool.getName()) + "_Grade" + selectedGrade + "_" + DateTime.Today.Year + "_" + DateTime.Today.Month + "_" + DateTime.Today.Day + ".pdf";
                        if ((selectedReportPeriods.Count > 0) && (reportcardStudents.Count > 0))
                        {
                            sendPDF(PDFReportCardParts.GeneratePDF(reportcardStudents, selectedReportPeriods, anonymize, showPhotos, doubleSidedMode, showClassAttendance, showLegends, showAttendanceSummary, adminComment), fileName);
                        }
                    }
                }
            }
        }