public ActionResult <IEnumerable <Quiz> > GetQuizzes([FromQuery] PageInfoDTO pageInfo)
        {
            if (pageInfo == null || pageInfo.CurrentPage <= 0 || pageInfo.MaxRecord <= 0)
            {
                return(BadRequest());
            }

            if (pageInfo.SearchValue == null)
            {
                pageInfo.SearchValue = "";
            }

            var quizzes    = _quizzesRepository.GetQuizzes(pageInfo);
            var quizzesDTO = _mapper.Map <IEnumerable <QuizDTO> >(quizzes);

            int maxPage = _quizzesRepository.GetMaxPage(pageInfo);

            string url = Url.Link("GetQuizzes", null);

            var pagingQuiz = new PagingQuizDTO
            {
                SearchValue  = pageInfo.SearchValue,
                CurrentPage  = pageInfo.CurrentPage,
                MaxPage      = maxPage,
                NextPage     = pageInfo.CurrentPage >= maxPage ? null : $"{url}?SearchValue={pageInfo.SearchValue}&CurrentPage={pageInfo.CurrentPage + 1}&MaxRecord={pageInfo.MaxRecord}",
                PreviousPage = pageInfo.CurrentPage <= 1 ? null : $"{url}?SearchValue={pageInfo.SearchValue}&CurrentPage={pageInfo.CurrentPage - 1}&MaxRecord={pageInfo.MaxRecord}",
                Quizzes      = quizzesDTO,
            };

            return(Ok(pagingQuiz));
        }
Example #2
0
 public ViewModelBase()
 {
     List       = new List <Dto>();
     Item       = new Dto();
     ItemDetail = new DDto();
     PageInfo   = new PageInfoDTO();
 }
Example #3
0
        public async Task <IActionResult> AddOrUpdate([FromForm] PageInfoDTO pageInfoDTO)
        {
            var execResult = await _service.AddOrUpdate(pageInfoDTO);

            if (execResult.IsSuccess)
            {
                return(Success(execResult.Result));
            }
            else
            {
                return(BadRequest(execResult.Error));
            }
        }
        public IEnumerable <Quiz> GetQuizzesForTeacher(PageInfoDTO pageInfo, string teacherId)
        {
            int offset = (pageInfo.CurrentPage - 1) * pageInfo.MaxRecord;

            var quizzes = _letQuizContext.Quizzes.Select(q => new Quiz
            {
                QuizId     = q.QuizId,
                Name       = q.Name,
                Password   = q.Password,
                CreateDate = q.CreateDate,
                Duration   = q.Duration,
                MaxPoint   = q.MaxPoint,
                Account    = new Account
                {
                    Username = q.Account.Username
                },
                IsExpire = q.IsExpire
            }).Where(q => (q.Name.Contains(pageInfo.SearchValue) && q.Account.Username == teacherId)).OrderByDescending(q => q.CreateDate).Skip(offset).Take(pageInfo.MaxRecord).ToList();

            return(quizzes);
        }
        public int GetMaxPageForTeacher(PageInfoDTO pageInfo, string teacherId)
        {
            var numRecord = _letQuizContext.Quizzes.Where(q => (q.Name.Contains(pageInfo.SearchValue) && q.Account.Username == teacherId)).Count();

            return((int)Math.Ceiling((numRecord * 1.0) / pageInfo.MaxRecord));
        }
        public int GetMaxPage(PageInfoDTO pageInfo)
        {
            var numRecord = _letQuizContext.Quizzes.Where(q => q.IsExpire == false && q.Name.Contains(pageInfo.SearchValue)).Count();

            return((int)Math.Ceiling((numRecord * 1.0) / pageInfo.MaxRecord));
        }