protected void Page_Load(object sender, EventArgs e) { string htmlOutput = ""; int moduleID = Convert.ToInt32(Request.QueryString["module"]); //get module name ModuleHandler moduleHandler = new ModuleHandler(); Module module = new Module(); module = moduleHandler.GetModuleDetails(Convert.ToInt32(moduleID)); litHeader.Text = "<div class='alert alert-info'>" + module.ModuleCode + "</div>"; StudentHandler studentHandler = new StudentHandler(); List<Student> listStudents = studentHandler.GetStudentList(moduleID); //Check to make sure there is students in the system assigned to the module if (listStudents == null) litHeader.Text = "<h3>There are currently no students linked to this module</h3>"; else { htmlOutput = "<tr><th>Student number</th><th>Firstname</th><th>Surname</th></tr>\n"; //add modules to table as it is generated for (int i = 0; i < listStudents.Count; i++) { htmlOutput += "<tr><td>" + listStudents[i].StudentNumber + "</td><td>" + listStudents[i].FirstName + "</td><td>" + listStudents[i].Surname + "</td></tr>\n"; } } litStudentList.Text = htmlOutput; }
protected void dlModules_SelectedIndexChanged(object sender, EventArgs e) { //get students from selected module StudentHandler studentHandler = new StudentHandler(); List<Student> listStudents = studentHandler.GetStudentList(Convert.ToInt32(dlModules.SelectedValue)); if (listStudents == null) { dlStudents.Items.Clear(); dlStudents.Items.Add("No students"); } else { dlStudents.DataSource = listStudents; dlStudents.DataTextField = "StudentNumber"; dlStudents.DataValueField = "StudentID"; dlStudents.DataBind(); } }
protected void btnGetReport_Click(object sender, EventArgs e) { //when a module us selected display all students linked to that module, and their attendance for each roll call //data needed: student name, status //get studentID, firstname, surname using ModuleID //for each student use studentID to find roll call status StudentHandler studentHandler = new StudentHandler(); RollCallHandler rollCallHandler = new RollCallHandler(); Student_RollCallHandler student_RollCallHandler = new Student_RollCallHandler(); Student_RollCall student_RollCall = new Student_RollCall(); List<Student> listStudents = studentHandler.GetStudentList(Convert.ToInt32(dlModules.SelectedValue)); litReport.Text = ""; string htmlOutput = "<thead><tr><th>Student <i class='fa fa-sort'></i></th><th>Percent <i class='fa fa-sort'></i></th></tr></thead>"; try { //get list of roll calls IDs held for a module List<RollCall> listRollCalls = rollCallHandler.GetRollCallList(Convert.ToInt32(dlModules.SelectedValue)); int countRollCall = 0; int countStudent = 0; string[,] studentData = new string[listStudents.Count, 2]; string[] student = new string[listStudents.Count] ; int[] attending = new int[listRollCalls.Count]; int temp = 0; for (int i = 0; i < listStudents.Count; i++) { studentData[i, 1] = "0"; } foreach (Student s in listStudents) { student[countStudent] = s.FirstName + " " + s.Surname; studentData[countStudent, 0] = s.FirstName + " " + s.Surname + " " + s.StudentNumber; //now get this students attendance records, one for each roll call, if no record exists assume absent foreach (RollCall r in listRollCalls) { student_RollCall = student_RollCallHandler.GetStudentAttendance(r.RollCallID, s.StudentID); try { litReport.Text += s.FirstName + " " + student_RollCall.Status; attending[countRollCall] += 1; temp = Convert.ToInt32(studentData[countStudent, 1]); temp += 1; studentData[countStudent, 1] = temp.ToString(); } catch (NullReferenceException) { litReport.Text += s.FirstName + " " + "absent"; attending[countRollCall] += 0; temp = Convert.ToInt32(studentData[countStudent, 1]); temp += 0; studentData[countStudent, 1] = temp.ToString(); } countRollCall++; } countStudent++; countRollCall = 0; litReport.Text += "</br></br>"; } litReport.Text = ""; for (int i = 0; i < listStudents.Count; i++) { studentData[i, 1] = (Convert.ToDouble(studentData[i, 1]) / listRollCalls.Count * 100).ToString(); studentData[i, 1] = Math.Round(Convert.ToDouble(studentData[i, 1]), 0).ToString(); htmlOutput += "<tr><td>" + studentData[i, 0] + "</td><td>" + studentData[i, 1] + "</td></tr>\n"; litReport.Text += studentData[i, 0] + " " + studentData[i, 1] + "</br>"; } } catch { htmlOutput = "<div class='alert alert-danger'>No records found</div>"; } litReport.Text = htmlOutput; }