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