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)); }
public ViewModelBase() { List = new List <Dto>(); Item = new Dto(); ItemDetail = new DDto(); PageInfo = new PageInfoDTO(); }
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)); }