public async Task <IActionResult> Index(string keyword, int pageIndex = 1, int pageSize = 10) { ViewData["msg"] = ""; try { var model = new QuestionPagingRequest() { keyword = keyword, PageIndex = pageIndex, PageSize = pageSize }; var token = CookieEncoder.DecodeToken(Request.Cookies["access_token_cookie"]); var allQuestions = await _questionManage.GetAllPaging(model, token); if (allQuestions.msg != null) { ViewData["msg"] = allQuestions.msg; return(View()); } return(View(allQuestions.data)); } catch (Exception) { ViewData["msg"] = "Lỗi hệ thống. Vui lòng đăng nhập lại."; return(View()); } }
public async Task <IActionResult> GetAllPaging(QuestionPagingRequest model) { var allQuestions = await _questionService.GetAllPaging(model); if (allQuestions != null) { return(Ok(new ResponseBase <PagedResult <Question> >() { data = allQuestions })); } return(Ok(new ResponseBase <PagedResult <Question> >() { msg = "Lỗi hệ thống" })); }
public async Task <IActionResult> DoingQuiz([FromQuery] int examID, int pageIndex = 1) { var token = CookieEncoder.DecodeToken(Request.Cookies["access_token_cookie"]); var pagingRequest = new QuestionPagingRequest() { ExamID = examID, PageIndex = pageIndex, PageSize = 5 }; var res = await _questionService.GetByExamPaging(pagingRequest, token); if (res != null && res.data != null) { var examData = res.data; if (examData.Items.Count == 0 || examData.Items == null) { return(RedirectToAction("Index", "Home")); } var time = examData.Items.FirstOrDefault().Exam.Time; if (time == 0) { ViewBag.min = null; ViewBag.sec = null; } else { ViewBag.min = time / 60; ViewBag.sec = time % 60; } Global.results = new List <Result>(); var userID = Int32.Parse(User.FindFirst("UserId").Value); foreach (var i in examData.Items) { Global.results.Add(new Result() { UserID = userID, QuestionID = i.ID, OptChoose = "N" }); } Global.questions = examData.Items; return(View(examData)); } return(View()); }
public async Task <ResponseBase <PagedResult <Question> > > GetAllPaging(QuestionPagingRequest model, string accessToken) { if (accessToken != null) { _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); } var json = JsonConvert.SerializeObject(model); var httpContent = new StringContent(json, Encoding.UTF8, "application/json"); var response = await _httpClient.PostAsync("api/Questions/Paged", httpContent); if (response.IsSuccessStatusCode) { var body = await response.Content.ReadAsStringAsync(); ResponseBase <PagedResult <Question> > pagedResult = JsonConvert.DeserializeObject <ResponseBase <PagedResult <Question> > >(body); return(pagedResult); } else { return(null); } }
public async Task <IActionResult> ShowQuestions(int id, string keyword, int pageIndex = 1, int pageSize = 10) { ViewData["SubTitle"] = ""; ViewData["msg"] = ""; ViewData["examID"] = id; try { var token = CookieEncoder.DecodeToken(Request.Cookies["access_token_cookie"]); var examName = await _examService.GetByID(id, token); ViewData["SubTitle"] = examName != null?"Đề thi: " + examName.data.ExamName:""; var model = new QuestionPagingRequest() { ExamID = id, keyword = keyword, PageIndex = pageIndex, PageSize = pageSize }; var allQuestions = await _questionManage.GetAllPaging(model, token); if (allQuestions.msg != null) { ViewData["msg"] = allQuestions.msg; return(View()); } if (allQuestions.data.Items != null) { allQuestions.data.Items = allQuestions.data.Items.Where(q => q.ExamID == id).ToList(); } return(View(allQuestions.data)); } catch (Exception) { ViewData["msg"] = "Lỗi hệ thống. Vui lòng đăng nhập lại."; return(View()); } }
public async Task <PagedResult <Question> > GetAllPaging(QuestionPagingRequest model) { var allQuestions = await _db.Questions.Where(q => q.isActive == true && q.Exam.isActive == true).Include(q => q.Results).Include(q => q.Exam).ToListAsync(); // check keyword de xem co dang tim kiem hay phan loai ko // sau do gan vao Query o tren if (!string.IsNullOrEmpty(model.keyword)) { allQuestions = allQuestions.Where(q => q.QuesContent.Contains(model.keyword) || q.Exam.ExamName.Contains(model.keyword) ).ToList(); } if (model.ExamID > 0) { allQuestions = allQuestions.Where(q => q.ExamID == model.ExamID).ToList(); } // get total row from query int totalrecord = allQuestions.Count; // get so trang int soTrang = 0; if (totalrecord > model.PageSize) { if (totalrecord % model.PageSize == 0) { soTrang = totalrecord / model.PageSize; } else { soTrang = totalrecord / model.PageSize + 1; } } // get data and paging var data = allQuestions.Skip((model.PageIndex - 1) * model.PageSize) .Take(model.PageSize) .Select(q => new Question() { ID = q.ID, QuesContent = q.QuesContent, Answer = q.Answer, ExamID = q.ExamID, ImgURL = q.ImgURL, isActive = q.isActive, Option1 = q.Option1, Option2 = q.Option2, Option3 = q.Option3, Option4 = q.Option4, STT = q.STT, Exam = q.Exam, Results = q.Results }) .ToList(); // return return(new PagedResult <Question>() { Items = data, TotalRecords = totalrecord, TotalPages = soTrang, PageIndex = model.PageIndex, PageSize = model.PageSize }); }