public async Task <List <ExamRoomDTO> > ListAvailableExamRoom([FromBody] ExamRoomFilterDTO examRoomRequestFilterDTO) { // Lấy tất cả các phòng thi trống trong khoảng thời gian từ StartHour đến FinishHour của ngày ExamDate // Tức là lấy các phòng thi có ExamRoomExamPeriod của ngày ExamDate không tồn tại trong khoảng thời gian >= StartHour và <= FinishHour List <ExamRoom> examRooms = await ExamRoomService.List(new ExamRoomFilter { ExamDate = DateTime.ParseExact(examRoomRequestFilterDTO.ExamDate, "dd-MM-yyyy", CultureInfo.InvariantCulture), ExceptStartHour = examRoomRequestFilterDTO.StartHour, ExceptFinishHour = examRoomRequestFilterDTO.FinishHour }); // Tức là lấy các phòng thi có ExamRoomExamPeriod không tồn tại nếu filter theo ExamDate examRooms.AddRange(await ExamRoomService.List(new ExamRoomFilter { ExceptExamDate = DateTime.ParseExact(examRoomRequestFilterDTO.ExamDate, "dd-MM-yyyy", CultureInfo.InvariantCulture) })); return(examRooms.Select(s => new ExamRoomDTO { Id = s.Id, Code = s.Code, RoomNumber = s.RoomNumber, AmphitheaterName = s.AmphitheaterName, ComputerNumber = s.ComputerNumber, Errors = s.Errors }).OrderBy(e => e.AmphitheaterName).ToList()); }
public async Task <List <ExamRoomDTO> > List() { List <ExamRoom> examRooms = await ExamRoomService.List(new ExamRoomFilter { OrderBy = ExamRoomOrder.AmphitheaterName, OrderType = OrderType.ASC }); List <ExamRoomDTO> res = new List <ExamRoomDTO>(); examRooms.ForEach(r => res.Add(new ExamRoomDTO { Id = r.Id, Code = r.Code, RoomNumber = r.RoomNumber, AmphitheaterName = r.AmphitheaterName, ComputerNumber = r.ComputerNumber, Errors = r.Errors })); return(res); }