public Student_RollCall GetDetailedAttendance(int moduleID, int studentID) { //broken and unused SqlParameter[] paramaters = new SqlParameter[] { new SqlParameter("@moduleID", moduleID), new SqlParameter("@studentID", studentID) }; Student_RollCall student_RollCall = null; using (DataTable table = DBHelper.ExecuteParamerizedSelectCommand("sp_GetDetailedAttendance", CommandType.StoredProcedure, paramaters)) { if (table.Rows.Count > 0) { foreach (DataRow row in table.Rows) { student_RollCall = new Student_RollCall(); student_RollCall.StudentID = Convert.ToInt32(row["StudentID"]); student_RollCall.RollCallID = Convert.ToInt32(row["RollCallID"]); student_RollCall.Status = row["Status"].ToString(); student_RollCall.TimeOfSignIn = row["TimeOfSignIn"].ToString(); } } } return student_RollCall; }
public bool AddNewStudent_RollCall(Student_RollCall student_RollCall) { SqlParameter[] parameters = new SqlParameter[] { new SqlParameter("@StudentID", student_RollCall.StudentID), new SqlParameter("@RollCallID", student_RollCall.RollCallID), new SqlParameter("@Status", student_RollCall.Status), new SqlParameter("@TimeOfSignIn", student_RollCall.TimeOfSignIn) }; return DBHelper.ExecuteNonQuery("sp_AddNewStudent_RollCall", CommandType.StoredProcedure, parameters); }
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) { //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; }
public bool AddNewRollCall(Student_RollCall student_RollCall) { return student_RollCallDB.AddNewStudent_RollCall(student_RollCall); }