コード例 #1
0
        TableRow generateStudentRow(Student student, List <SchoolDay> days)
        {
            TableRow newRow = new TableRow();

            TableCell cell_ID = new TableCell();

            cell_ID.CssClass = "datatable_row";
            cell_ID.Text     = student.getStudentID();
            newRow.Cells.Add(cell_ID);

            TableCell cell_FirstName = new TableCell();

            cell_FirstName.CssClass = "datatable_row";
            cell_FirstName.Text     = student.getFirstName();
            newRow.Cells.Add(cell_FirstName);

            TableCell cell_LastName = new TableCell();

            cell_LastName.CssClass = "datatable_row";
            cell_LastName.Text     = student.getLastName();
            newRow.Cells.Add(cell_LastName);

            foreach (SchoolDay day in days)
            {
                StringBuilder         timeTableInfo  = new StringBuilder();
                List <TimeTableEntry> thisDayClasses = new List <TimeTableEntry>();

                foreach (TimeTableEntry tte in student.TimeTable)
                {
                    if (tte.dayNum == day.dayNumber)
                    {
                        thisDayClasses.Add(tte);
                    }
                }
                thisDayClasses.Sort();


                if (thisDayClasses.Count > 0)
                {
                    TimeTableEntry firstClassOfTheDay = TimeTableEntry.getEarliest(thisDayClasses);
                    //timeTableInfo.Append(firstClassOfTheDay.schoolClass.name + " (Teacher: " + firstClassOfTheDay.schoolClass.teacherName + ", Room: " + firstClassOfTheDay.roomName + ", Period: " + firstClassOfTheDay.blockNum + ")");
                    timeTableInfo.Append(firstClassOfTheDay.ToStringFormatted());
                }
                else
                {
                    timeTableInfo.Append("No classes today");
                }

                TableCell cell_Day = new TableCell();
                cell_Day.VerticalAlign = VerticalAlign.Top;
                cell_Day.CssClass      = "datatable_row";
                cell_Day.Text          = timeTableInfo.ToString();
                newRow.Cells.Add(cell_Day);
            }

            return(newRow);
        }
コード例 #2
0
        protected MemoryStream GenerateCSV(List <Student> students, List <SchoolDay> days)
        {
            MemoryStream csvFile = new MemoryStream();
            StreamWriter writer  = new StreamWriter(csvFile, Encoding.UTF8);

            // CSV Headings
            StringBuilder headingLine = new StringBuilder();

            headingLine.Append("StudentNumber, FirstName, LastName, DateOfBirth, Telephone, Apartment, House, Street, City, Province, PostalCode, ");

            for (int x = 0; x < days.Count; x++)
            {
                headingLine.Append(days[x].name + "Teacher,");
                headingLine.Append(days[x].name + "Room,");
                headingLine.Append(days[x].name + "Class,");
                headingLine.Append(days[x].name + "Period");
                if ((x + 1) < days.Count)
                {
                    headingLine.Append(",");
                }
            }
            writer.WriteLine(headingLine.ToString());

            // CSV Data
            foreach (Student student in students)
            {
                StringBuilder studentLine = new StringBuilder();
                studentLine.Append(student.getStudentID());
                studentLine.Append(",");

                studentLine.Append(student.getFirstName());
                studentLine.Append(",");

                studentLine.Append(student.getLastName());
                studentLine.Append(",");

                studentLine.Append(student.getDateOfBirth().ToShortDateString());
                studentLine.Append(",");

                studentLine.Append("\"" + student.getTelephone() + "\"");
                studentLine.Append(",");

                studentLine.Append("\"" + student.getApartmentNo() + "\"");
                studentLine.Append(",");

                studentLine.Append("\"" + student.getHouseNo() + "\"");
                studentLine.Append(",");

                studentLine.Append("\"" + student.getStreet() + "\"");
                studentLine.Append(",");

                studentLine.Append("\"" + student.getCity() + "\"");
                studentLine.Append(",");

                studentLine.Append("\"" + student.getRegion() + "\"");
                studentLine.Append(",");

                studentLine.Append("\"" + student.getPostalCode() + "\"");
                studentLine.Append(",");

                for (int x = 0; x < days.Count; x++)
                {
                    List <TimeTableEntry> thisDayClasses = new List <TimeTableEntry>();

                    foreach (TimeTableEntry tte in student.TimeTable)
                    {
                        if (tte.dayNum == days[x].dayNumber)
                        {
                            thisDayClasses.Add(tte);
                        }
                    }

                    if (thisDayClasses.Count > 0)
                    {
                        TimeTableEntry firstClassOfTheDay = TimeTableEntry.getEarliest(thisDayClasses);

                        studentLine.Append("\"" + firstClassOfTheDay.schoolClass.teacherName + "\",");
                        studentLine.Append("\"" + firstClassOfTheDay.roomName + "\",");
                        studentLine.Append("\"" + firstClassOfTheDay.schoolClass.name + "\",");
                        studentLine.Append("" + firstClassOfTheDay.blockNum + "");
                    }
                    else
                    {
                        studentLine.Append("\"\",");
                        studentLine.Append("\"\",");
                        studentLine.Append("\"\"");
                        studentLine.Append("\"\"");
                    }


                    if ((x + 1) < days.Count)
                    {
                        studentLine.Append(",");
                    }
                }

                writer.WriteLine(studentLine.ToString());
            }
            writer.Flush();
            csvFile.Flush();
            return(csvFile);
        }