示例#1
0
        public async Task <RealTimeStatisticsViewModel> GetRealTimeStatisticsViewModel(Lector lector)
        {
            var realTimeStatistics =
                await(
                    from mh in _context.ModuleHistories
                    where mh.StartTime != null && mh.IsPassed == false && mh.LectorId == lector.Id
                    join lh in _context.LecturesHistories on mh.LectureHistoryId equals lh.Id
                    join m in _context.Modules on mh.ModuleId equals m.Id
                    join q in _context.Questions on m.Id equals q.ModuleId into qjoin
                    join sd in _context.StudentDisciplines on lh.DisciplineId equals sd.DisciplineId into sdjoin
                    select new RealTimeStatisticsViewModel
            {
                LecturesHistory = lh,
                Module          = m,
                ModuleHistory   = mh,
                Questions       = qjoin,
                StudentIds      = sdjoin.Select(s => s.StudentId)
            }).SingleOrDefaultAsync();

            var timer = TimerAssociates.GetTimer(realTimeStatistics.ModuleHistory.Id, TimerAssociates.TimerType.Realtime) ??
                        _timerAssociates.StartTimer(realTimeStatistics.ModuleHistory.Id,
                                                    TimeSpan.FromMinutes(realTimeStatistics.Module.MinutesToPass), TimerAssociates.TimerType.Realtime);

            realTimeStatistics.Lector     = lector;
            realTimeStatistics.TimeFinish = timer.ModuleFinish.ToLocalTime().ToString("yyyy-MM-ddTHH:mm:ss");
            realTimeStatistics.Groups     =
                await(from g in _context.Groups
                      join lhg in _context.LectureHistoryGroups on g.Id equals lhg.GroupId
                      where lhg.LectureHistoryId == realTimeStatistics.LecturesHistory.Id
                      select g).ToListAsync();

            return(realTimeStatistics);
        }
示例#2
0
 public LectureHistoryHelper(testingDbEntities context)
 {
     _db = context;
     _timerAssociates = new TimerAssociates(context);
     _quizManager     = new QuizManager(context);
 }
示例#3
0
 public QuizManager(testingDbEntities context)
 {
     _context           = context;
     _studentPageHelper = new StudentPageHelper(context);
     _timerAssociates   = new TimerAssociates(context);
 }
示例#4
0
 public QuizController(ITestingDbEntityService context) : base(context)
 {
     _quizManager     = new QuizManager(Context);
     _timerAssociates = new TimerAssociates(Context);
 }