public IActionResult Update(string id, [FromBody] AttendanceRollCall _AttendanceRollCall) { var tEntity = context.AttendanceRollCall.FirstOrDefault(e => e.Id.Equals(id)); if (tEntity != null) { try { tEntity.CheckAttendance = _AttendanceRollCall.CheckAttendance; tEntity.DateCheck = _AttendanceRollCall.DateCheck; tEntity.RegisterId = _AttendanceRollCall.RegisterId; context.AttendanceRollCall.Update(tEntity); context.SaveChanges(); return(Ok(true)); } catch (Exception) { return(Ok(false)); } } return(Ok(false)); }
[Route("CheckAttend/studentID/subjectID/teacherID")] //check điểm danh theo môn học và gv public IActionResult CheckAttend(string studentID, string subjectID, string teacherID) { //lấy reg vs id student, id subject, id teacher truyền vào var obj = context.RegisterSubjects.Where(s => s.StudentId.Equals(studentID) && s.SubjectId.Equals(subjectID) && s.TeacherId.Equals(teacherID)).ToList(); if (obj.Count > 0) { AttendanceRollCall attendance = new AttendanceRollCall(); attendance.Id = Guid.NewGuid() + ""; attendance.RegisterId = obj[0].RegisterId; attendance.CheckAttendance = "1"; attendance.DateCheck = DateTime.Now.ToString("dd/MM/yyyy"); Console.WriteLine(attendance.Id + "--" + attendance.RegisterId + "-----" + attendance.DateCheck); try { context.AttendanceRollCalls.Add(attendance); context.SaveChanges(); return(Ok(true)); } catch (System.Exception) { return(Ok(false)); } } return(Ok(false)); }
public IActionResult Create([FromBody] AttendanceRollCall _AttendanceRollCall) { try{ _AttendanceRollCall.Id = Guid.NewGuid() + ""; context.AttendanceRollCall.Add(_AttendanceRollCall); context.SaveChanges(); return(Ok(true)); }catch { return(Ok(false)); }; }
public IActionResult CheckAttendanceForStudentNoCheck(string teacherID, string subjectID) { //lấy toàn bộ profile sinh viên theo 1 teacher dạy 1 môn học var listAllStudent = (from registersubject in context.RegisterSubjects join student in context.Students on registersubject.StudentId equals student.StudentId join profile_student in context.ProfileStudents on student.ProfileId equals profile_student.ProfileId where registersubject.TeacherId == teacherID where registersubject.SubjectId == subjectID select profile_student.ProfileId).Distinct().ToList(); //lấy danh sách sv đã điểm danh theo 1 teacher dạy 1 môn học tại 1 thời điểm var listStudentRollCall = (from attendance in context.AttendanceRollCalls join register_subject in context.RegisterSubjects on attendance.RegisterId equals register_subject.RegisterId join student in context.Students on register_subject.StudentId equals student.StudentId join profile_student in context.ProfileStudents on student.ProfileId equals profile_student.ProfileId where register_subject.SubjectId == subjectID where register_subject.TeacherId == teacherID where attendance.DateCheck == DateTime.Now.ToString("dd/MM/yyyy") //DateTime được set thông tin ngày tháng thời gian hiện tại theo máy tính địa phương. where attendance.CheckAttendance == "1" select profile_student.ProfileId).ToList(); // ArrayList arrListAllStudent = new ArrayList(); foreach (var item in listAllStudent) { arrListAllStudent.Add(item); } // ArrayList arrListStudentRollCall = new ArrayList(); foreach (var item in listStudentRollCall) { arrListStudentRollCall.Add(item); } //danh sách sinh viên k điểm danh trong list tất cả sv (của 1 môn học, 1 gv) ArrayList arrListStudentIdDontCheck = new ArrayList(); foreach (Object obj in arrListAllStudent) //duyệt sv trong toàn bộ danh sách { if (!arrListStudentRollCall.Contains(obj)) //sv k có trong danh sách sv { arrListStudentIdDontCheck.Add(obj); //add vào danh sách chưa điểm danh } } // danh sách sv chưa điểm danh theo môn học và giáo viên foreach (Object item in arrListStudentIdDontCheck) { //duyệt ds sv chưa điểm danh //obj: id của sv chưa điểm danh && subjectID truyền vào && teacherid truyền vào var obj = context.RegisterSubjects.Where(s => s.StudentId.Equals(item) && s.SubjectId.Equals(subjectID) && s.TeacherId.Equals(teacherID) ).ToList(); if (obj.Count > 0) //nếu có sv chưa điểm danh (theo môn học và gv đó) { AttendanceRollCall attendance = new AttendanceRollCall(); // attendance.Id = Guid.NewGuid() + ""; attendance.RegisterId = obj[0].RegisterId; attendance.CheckAttendance = "0"; attendance.DateCheck = DateTime.Now.ToString("dd/MM/yyyy"); // at.DateCheck = "07/01/2019"; try { context.AttendanceRollCalls.Add(attendance); //lưu ds sv k điểm danh context.SaveChanges(); } catch (System.Exception) { return(Ok(false)); } } } // filter Student dont check foreach (Object studentid in arrListStudentIdDontCheck) //duyệt sv k điểm danh { //lấy id đk môn học theo từng sv chưa điểm danh //id đăng kí môn học: theo id teacher, id subject, id sv chưa điểm danh var registerID = //lấy id đăng kí môn học trong registersubject với teacherid, subjectid truyền vào và student trong list sv k điểm danh (from reg in context.RegisterSubjects where reg.TeacherId == teacherID where reg.SubjectId == subjectID where reg.StudentId == studentid.ToString() select reg.RegisterId ).Distinct().ToList(); //danh sách điểm danh theo sv (với môn học có sv chưa điểm danh đó) ?? cái này làm gì var listAllAttendanceByStudent = (from at in context.AttendanceRollCalls where at.DateCheck == DateTime.Now.ToString("dd/MM/yyyy") where at.RegisterId == registerID[0]//tại sao lấy môn học đầu select at ).Distinct().ToList(); string check = "0"; foreach (var item in listAllAttendanceByStudent) //duyệt danh sách điểm danh theo sv (với môn học có sv chưa điểm danh) { if (!item.CheckAttendance.Equals("0")) // sv có điểm danh { check = "1"; } context.AttendanceRollCalls.Remove(context.AttendanceRollCalls.Find(item.Id)); //remove item(id) trong danh sách điểm danh theo sv (chưa điểm danh) context.SaveChanges(); } foreach (var item in listAllAttendanceByStudent)//duyệt danh sách điểm danh theo sv (với môn học có sv chưa điểm danh) { item.Id = Guid.NewGuid() + ""; item.CheckAttendance = check; context.AttendanceRollCalls.Add(item); context.SaveChanges(); break; } } //filter Student check foreach (Object p_studentid in arrListStudentRollCall) //duyệt sv điểm danh { //lấy id đk môn học theo từng sv đã điểm danh //id đăng kí môn học: theo id teacher, id subject, id profile sv điểm danh var registerID = //lấy id đăng kí môn học trong registersubject với teacherid, subjectid truyền vào và student trong list sv k điểm danh (from reg in context.RegisterSubjects where reg.TeacherId == teacherID where reg.SubjectId == subjectID where reg.StudentId == p_studentid.ToString() select reg.RegisterId ).Distinct().ToList(); //danh sách điểm danh theo sv (với môn học có sv đã điểm danh) ?? cái này làm gì var listAllAttendanceByStudent = (from at in context.AttendanceRollCalls where at.DateCheck == DateTime.Now.ToString("dd/MM/yyyy") where at.RegisterId == registerID[0]//tại sao lấy môn học đầu select at ).Distinct().ToList(); string check = "0"; foreach (var item in listAllAttendanceByStudent) //duyệt danh sách điểm danh theo sv (với môn học có sv chưa điểm danh) { if (!item.CheckAttendance.Equals("0")) // sv có điểm danh { check = "1"; } context.AttendanceRollCalls.Remove(context.AttendanceRollCalls.Find(item.Id)); //remove item(id) trong danh sách điểm danh theo sv (chưa điểm danh) context.SaveChanges(); } foreach (var item in listAllAttendanceByStudent)//duyệt danh sách điểm danh theo sv (với môn học có sv chưa điểm danh) { item.Id = Guid.NewGuid() + ""; item.CheckAttendance = check; context.AttendanceRollCalls.Add(item); context.SaveChanges(); break; } } return(Ok(true)); }