// GET: api/AttendanceApi public IQueryable Get() { DataManager dm = new DataManager(); List <AttendanceReport> list = new List <AttendanceReport>(); String token = Request.Headers.Authorization.Parameter; int teacherId = dm.getTeacherID(AccountManager.getUsernameFromToken(token)); List <ClassCourseDetail> detail = dm.getClassCourseDetail(teacherId); foreach (ClassCourseDetail sdetail in detail) { List <Student> students = db.Students.Where(o => o.Classes.Any(c => c.classID == sdetail.classID)).ToList <Student>(); foreach (Student std in students) { AttendanceReport obj = new AttendanceReport(); obj.classID = sdetail.classID; obj.courseCode = sdetail.courseCode; obj.rollNo = std.rollNo; StudentsDetailAttendance stdetail = dm.getAttendanceDetail(std.rollNo, sdetail.classID, sdetail.courseCode, teacherId); obj.presentPercentage = stdetail.presentPercentage; obj.totalAttendance = stdetail.totalAttendace; obj.absentPercentage = stdetail.abscentPercentage; list.Add(obj); } } return(list.AsQueryable()); }
public StudentsDetailAttendance getAttendanceDetail(string rollNo, int classID, string courseCode, int teacherID) { StudentsDetailAttendance detail = new StudentsDetailAttendance(); detail.rollNo = rollNo; detail.studentName = db.Students.Find(rollNo).fullName; List <Attendance> obj = db.Attendances.Where(o => o.classID == classID && o.courseCode == courseCode && o.teacherID == teacherID && o.rollNo == rollNo).ToList <Attendance>(); detail.totalAttendace = obj.Count; if (obj.Count == 0) { detail.presentPercentage = 0; detail.abscentPercentage = 0; } else { Double presentVal = obj.Where(o => o.status == "Present").ToArray().Length; Decimal present = Decimal.Parse(((presentVal) / Double.Parse(obj.Count.ToString()) * 100.00).ToString()); detail.presentPercentage = present; Double abcentVal = obj.Where(o => o.status == "Absent").ToArray().Length; Decimal abcent = Decimal.Parse(((abcentVal) / Double.Parse(obj.Count.ToString()) * 100.00).ToString()); detail.abscentPercentage = abcent; } return(detail); }