Exemple #1
0
        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());
        }
Exemple #2
0
        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);
        }