public async Task <IActionResult> BySchedule([FromQuery] GetByScheduleRequest request) { var data = await _studentService.GetBySchedule(request); if (data.IsSuccessed == false) { return(BadRequest(data)); } return(Ok(data)); }
public async Task <ApiResult <StudentSchedule> > GetBySchedule(GetByScheduleRequest request) { var student = await _context.Students.FindAsync(request.Id_Student); var schedule = await _context.Schedules.FindAsync(request.Id_Schedule); if (student == null || schedule == null) { return(new ApiErrorResult <StudentSchedule>("Không tìm thấy dữ liệu")); } var queryStudentAttdendace = from s in _context.Schedules join ha in _context.HistoryAttendances on s.Id_Schedule equals ha.Id_Schedule join d in _context.DetailHAs on ha.Id_HistoryAttendace equals d.Id_HistoryAttendance join st in _context.Students on d.Id_Student equals st.Id where s.Id_Schedule == request.Id_Schedule select new { s, d, st }; var dataStudentAttdendace = await queryStudentAttdendace.Select(x => x.st.Id).ToListAsync(); int check = dataStudentAttdendace.IndexOf(request.Id_Student); var user = new StudentSchedule(); if (check > -1) { user = new StudentSchedule() { Id_Student = student.Id, Name = student.FullName, Date = schedule.Date, Status = true }; } else { user = new StudentSchedule() { Id_Student = student.Id, Name = student.FullName, Date = schedule.Date, Status = false }; } return(new ApiSuccessResult <StudentSchedule>(user)); }