public async Task <List <ExamRoomExamPeriodDTO> > ListExamRoomExamPeriod()
        {
            ExamProgram currentExamProgram = await ExamProgramService.GetCurrentExamProgram();

            ExamRoomExamPeriodFilter filter = new ExamRoomExamPeriodFilter
            {
                StudentNumber = CurrentContext.StudentNumber,
                ExamProgramId = new GuidFilter {
                    Equal = currentExamProgram.Id
                },
                OrderBy   = ExamOrder.ExamDate,
                OrderType = OrderType.ASC
            };
            List <ExamRoomExamPeriod> res = await ExamRoomExamPeriodService.List(filter);

            return(res.Select(r => new ExamRoomExamPeriodDTO
            {
                ExamPeriodId = r.ExamPeriodId,
                ExamRoomId = r.ExamRoomId,
                TermId = r.TermId,
                ExamProgramId = r.ExamProgramId,
                ExamProgramName = r.ExamProgramName,
                ExamDate = r.ExamDate.ToString("dd-MM-yyyy"),
                StartHour = r.StartHour,
                FinishHour = r.FinishHour,
                ExamRoomNumber = r.ExamRoomNumber,
                ExamRoomAmphitheaterName = r.ExamRoomAmphitheaterName,
                ExamRoomComputerNumber = r.ExamRoomComputerNumber,
                CurrentNumberOfStudentRegistered = r.Students.Count,
                SubjectName = r.SubjectName,
                Errors = r.Errors,
            }).ToList());
        }
        public async Task <List <WatcherDTO> > List()
        {
            ExamProgram currentExamProgram = await ExamProgramService.GetCurrentExamProgram();

            if (currentExamProgram == null)
            {
                return(new List <WatcherDTO>());
            }
            List <ExamRoomExamPeriod> examRoomExamPeriods = await ExamRoomExamPeriodService.List(new ExamRoomExamPeriodFilter
            {
                ExamProgramId = new GuidFilter {
                    Equal = currentExamProgram.Id
                }
            });

            List <WatcherDTO> res = new List <WatcherDTO>();

            examRoomExamPeriods.ForEach(r => res.Add(new WatcherDTO
            {
                ExamPeriodId                     = r.ExamPeriodId,
                ExamRoomId                       = r.ExamRoomId,
                ExamProgramId                    = r.ExamProgramId,
                TermId                           = r.TermId,
                ExamProgramName                  = r.ExamProgramName,
                ExamRoomNumber                   = r.ExamRoomNumber,
                ExamRoomAmphitheaterName         = r.ExamRoomAmphitheaterName,
                ExamRoomComputerNumber           = r.ExamRoomComputerNumber,
                CurrentNumberOfStudentRegistered = r.Students.Count,
                ExamDate                         = r.ExamDate.ToString("dd-MM-yyyy"),
                StartHour                        = r.StartHour,
                FinishHour                       = r.FinishHour,
                SubjectName                      = r.SubjectName,
                Errors                           = r.Errors
            }));
            return(res);
        }