public async Task <IActionResult> StudentActiveEventsAll(string searchText, string searchCriteria, int page = 1, int countPerPage = PerPageDefaultValue)
        {
            var studentId = this.userManager.GetUserId(this.User);
            var model     = new StudentEventsViewModel <StudentActiveEventViewModel>()
            {
                CurrentPage  = page,
                PagesCount   = 0,
                SearchType   = searchCriteria,
                SearchString = searchText,
            };

            var allActiveEventsCount = await this.eventsService.GetEventsCountByStudentIdAndStatusAsync(studentId, Status.Active, searchCriteria, searchText);

            if (allActiveEventsCount > 0)
            {
                var activeEvents = await this.eventsService
                                   .GetPerPageByStudentIdFilteredByStatusAsync <StudentActiveEventViewModel>(
                    Status.Active, studentId, page, countPerPage, false, searchCriteria, searchText);

                var timeZoneIana = this.Request.Cookies[GlobalConstants.Coockies.TimeZoneIana];
                foreach (var activeEvent in activeEvents)
                {
                    activeEvent.Duration = this.dateTimeConverter.GetDurationString(activeEvent.ActivationDateAndTime, activeEvent.DurationOfActivity, timeZoneIana);
                }

                model.PagesCount = (int)Math.Ceiling(allActiveEventsCount / (decimal)countPerPage);
                model.Events     = activeEvents;
            }

            return(this.View(model));
        }
        public async Task <IActionResult> StudentEndedEventsAll(string searchText, string searchCriteria, int page = 1, int countPerPage = PerPageDefaultValue)
        {
            var studentId = this.userManager.GetUserId(this.User);
            var model     = new StudentEventsViewModel <StudentEndedEventViewModel>()
            {
                CurrentPage  = page,
                PagesCount   = 0,
                SearchType   = searchCriteria,
                SearchString = searchText,
            };

            var allEndedEventsCount = await this.eventsService.GetEventsCountByStudentIdAndStatusAsync(studentId, Status.Ended, searchCriteria, searchText);

            if (allEndedEventsCount > 0)
            {
                var endedEvents = await this.eventsService
                                  .GetPerPageByStudentIdFilteredByStatusAsync <StudentEndedEventViewModel>(
                    Status.Ended, studentId, page, countPerPage, true, searchCriteria, searchText);

                var scores = await this.resultService.GetAllByStudentIdAsync <ScoreViewModel>(studentId);

                var timeZoneIana = this.Request.Cookies[GlobalConstants.Coockies.TimeZoneIana];

                foreach (var endenEvent in endedEvents)
                {
                    if (endenEvent.QuizName == null)
                    {
                        endenEvent.QuizName = await this.resultService.GetQuizNameByEventIdAndStudentIdAsync(endenEvent.Id, studentId);
                    }

                    endenEvent.Score = scores.FirstOrDefault(x => x.EventId == endenEvent.Id);
                    endenEvent.Date  = this.dateTimeConverter.GetDate(endenEvent.ActivationDateAndTime, timeZoneIana);
                }

                model.PagesCount = (int)Math.Ceiling(allEndedEventsCount / (decimal)countPerPage);
                model.Events     = endedEvents;
            }

            return(this.View(model));
        }