protected void Page_Load(object sender, EventArgs e) { //test url: http://localhost:7820/SignIn.aspx?id=1&num=235346 int rollCallID = Convert.ToInt32(Request.QueryString["id"]); string studentNumber = Request.QueryString["num"]; //find roll call and check if it is active RollCallHandler rollCallHandler = new RollCallHandler(); RollCall rollCall = new RollCall(); rollCall = rollCallHandler.GetRollCallDetails(rollCallID); //check if auto disable exists if (rollCall.AutoDisable != "") { DateTime autoDisableDate = DateTime.Parse(rollCall.AutoDisable); if (DateTime.Compare(autoDisableDate, DateTime.Now) < 0) { //auto disabl date reached, disable roll call rollCallHandler.EndRollCall(rollCallID); rollCall.Status = "disabled"; } } if (rollCall.Status == "enabled") { //get student details StudentHandler studentHandler = new StudentHandler(); Student student = new Student(); student = studentHandler.GetStudentID(studentNumber); //sign in Student_RollCallHandler student_RollCallHandler = new Student_RollCallHandler(); Student_RollCall student_RollCall = new Student_RollCall(); student_RollCall.RollCallID = rollCallID; student_RollCall.StudentID = student.StudentID; student_RollCall.Status = "present"; student_RollCall.TimeOfSignIn = DateTime.Now.ToString(); student_RollCallHandler.AddNewRollCall(student_RollCall); } else { } }
protected void btnGetReport_Click(object sender, EventArgs e) { string htmlOutput = "<thead><tr><th>Date <i class='fa fa-sort'></i></th><th>Status <i class='fa fa-sort'></i></th></tr></thead>"; litReport.Text = ""; //for each roll call held show status of selected student RollCallHandler rollCallHandler = new RollCallHandler(); //get list of roll calls held for the module List<RollCall> listRollCalls = rollCallHandler.GetRollCallList(Convert.ToInt32(dlModules.SelectedValue)); //get a students attendance for each of the found roll calls Student_RollCall student_RollCall = new Student_RollCall(); Student_RollCallHandler student_RollCallHandler = new Student_RollCallHandler(); try { foreach (RollCall r in listRollCalls) { student_RollCall = student_RollCallHandler.GetStudentAttendance(r.RollCallID, Convert.ToInt32(dlStudents.SelectedValue)); try { litReport.Text += student_RollCall.Status + "<br/>"; DateTime date = Convert.ToDateTime(r.TimeOfRollCall); htmlOutput += "<tr><td>" + date.ToString("MM/dd/yyyy HH:mm tt") + "</td><td>" + student_RollCall.Status + "</td></tr>\n"; } catch (NullReferenceException) { litReport.Text += "Absent<br/>"; DateTime date = Convert.ToDateTime(r.TimeOfRollCall); htmlOutput += "<tr><td>" + date.ToString("MM/dd/yyyy HH:mm tt") + "</td><td>absent</td></tr>\n"; } } Student student = new Student(); StudentHandler studentHandler = new StudentHandler(); } catch { htmlOutput = "<div class='alert alert-danger'>No records found</div>"; } litReport.Text = htmlOutput; }
protected void btnGetReport_Click(object sender, EventArgs e) { string chartHead = "<script>new Morris.Line({element: 'mychart',;data: ["; string chartFoot = "],xkey: 'date',ykeys: ['value'],labels: ['Percentage']});</script>"; //{ date: '1990', value: 20 }, string chartBody = ""; //create report showing the average attendance for a module per roll call Student_RollCallHandler student_RollCallHandler = new Student_RollCallHandler(); List<string> result = student_RollCallHandler.GetModuleAttendanceList(Convert.ToInt32(dlModules.SelectedValue)); int count = 0; int totalStudents = 0; //format of string returned is: //rollCallID rollCallDate totalModuleStudents totalSignedInStudents try { litReport.Text = ""; string date = ""; double attending = 0; foreach (String s in result) { count++; if (count < 4) { //litReport.Text += s + " "; display data if (count == 2) { //{ date: '1990', value: 20 }, date = s; date = date.Substring(0, 10); chartBody += "{ date: '" + date + ", "; } if (count == 3) { totalStudents = Convert.ToInt32(s); } } else { //litReport.Text += s + "</br>"; display data count = 0; double attended; if (Convert.ToInt32(s) == 0) { attended = 0; } else { attended = totalStudents / Convert.ToInt32(s); } attending = Convert.ToDouble(s) / Convert.ToDouble(totalStudents); attending *= 100; chartBody += "value: " + Math.Round(attended) + "},"; FillGraph(date, attending); } } litChart.Text = chartHead + chartBody + chartFoot; } catch (NullReferenceException) { litReport.Text = "<div class='alert alert-danger'>No records found</div>"; } }
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; }