public ActionResult GetData([FromBody] DatatableRequest request) { if (request.columns != null) { foreach (var column in request.columns) { if (column.search == null) { continue; } switch (column.name) { case "roles": column.search.field = "roles.Select(r=>r.roleId)"; column.search.Operator = FilterOperator.Contains; break; default: column.search.Operator = FilterOperator.Contains; break; } } } DatatableResult <UserGridViewModel> users = _userRepository.GetUserViewModels(request); return(Json(users)); }
public DatatableResult GetDatatableList(DatatableParams viewModel) { string[] cols = { "Id", "ArabicName", "EnglishName" }; var start = GetStart(viewModel.startString); var length = GetLength(viewModel.endString); var lst = GetList(); lst = GetListSearched(viewModel, lst); lst = GetListSorted(viewModel, cols, lst); var count = lst.Count(); var data = lst.Skip(start).Take(length).ToList(); var oResult = new DatatableResult { draw = viewModel.nDraw }; foreach (var item in data) { oResult.data.Add(item); } oResult.recordsTotal = count; oResult.recordsFiltered = count; return(oResult); }
public async Task <DatatableResult <List <ModuleViewModel> > > GetListModule(DatatableRequestBase request) { var query = from m in _context.Modules select m; if (!String.IsNullOrEmpty(request.searchValue)) { query = query.Where(x => x.ModuleName.Contains(request.searchValue) || x.ModuleDescription.Contains(request.searchValue)); } int totalRow = await query.CountAsync(); if (request.sortColumnDirection == "desc") { switch (request.sortColumn) { case "0": query = query.OrderByDescending(r => r.Id); break; case "1": query = query.OrderByDescending(r => r.ModuleName); break; case "2": query = query.OrderByDescending(r => r.ModuleDescription); break; } } else if (request.sortColumnDirection == "asc") { switch (request.sortColumn) { case "0": query = query.OrderBy(r => r.Id); break; case "1": query = query.OrderBy(r => r.ModuleName); break; case "2": query = query.OrderBy(r => r.ModuleDescription); break; } } var data = await query.Skip(request.Skip).Take(request.PageSize) .Select(x => new ModuleViewModel() { ID = x.Id, ModuleName = x.ModuleName, ModuleDescription = x.ModuleDescription, Action = String.Format("<a href = 'javascript:void(0)' data-toggle = 'tooltip' id = 'edit' data-id = '{0}' data-original-title='Edit' class='btn mr-5 btn-xs btn-warning btn-edit'><i class='glyphicon glyphicon-edit'></i> Sửa</a><a href = 'javascript:void(0)' data-toggle='tooltip' id='delete' data-id='{1}' data-original-title='Delete' class='btn btn-xs btn-danger btn-delete'><i class='glyphicon glyphicon-trash'></i> Xóa</a>", x.Id, x.Id) }).ToListAsync(); var result = new DatatableResult <List <ModuleViewModel> >() { recordsTotal = totalRow, recordsFiltered = totalRow, Draw = request.Draw, Data = data }; return(result); }
public async Task <DatatableResult <List <StudentInExamViewModel> > > GetStudentsInExam(DatatableRequestBase request, int roomId) { var query = from e in _context.Joinroom where e.RoomId == roomId select e; if (!String.IsNullOrEmpty(request.searchValue)) { query = query.Where(x => x.FullName.Contains(request.searchValue)); } int totalRow = await query.CountAsync(); if (request.sortColumnDirection == "desc") { switch (request.sortColumn) { case "0": query = query.OrderByDescending(r => r.FullName); break; case "1": query = query.OrderByDescending(r => r.Mssv); break; case "2": query = query.OrderByDescending(r => r.Score); break; case "3": query = query.OrderByDescending(r => r.TimeSubmitExam); break; } } else if (request.sortColumnDirection == "asc") { switch (request.sortColumn) { case "0": query = query.OrderByDescending(r => r.FullName); break; case "1": query = query.OrderByDescending(r => r.Mssv); break; case "2": query = query.OrderByDescending(r => r.Score); break; case "3": query = query.OrderByDescending(r => r.TimeSubmitExam); break; } } var data = await query.Skip(request.Skip).Take(request.PageSize) .Select(x => new StudentInExamViewModel() { HoTen = x.FullName, Mssv = x.Mssv, Score = x.Score, Timesubmit = x.TimeSubmitExam } ).ToListAsync(); var result = new DatatableResult <List <StudentInExamViewModel> >() { recordsTotal = totalRow, recordsFiltered = totalRow, Draw = request.Draw, Data = data }; return(result); }
public async Task <DatatableResult <List <RoomViewModel> > > GetListRoom(DatatableRequestBase request) { var query = from r in _context.Rooms join e in _context.Exams on r.ExamId equals e.Id select new { r, e }; var userCount = from jr in _context.Joinroom group jr by jr.RoomId into r select new { roomId = r.Key, userCount = r.Count() }; var examCount = from qd in _context.Questiondetails group qd by qd.ExamId into r select new { examId = r.Key, questionCount = r.Count() }; var collect = from d in query join u in userCount on d.r.Id equals u.roomId into firstJoin from first in firstJoin.DefaultIfEmpty() join e in examCount on d.e.Id equals e.examId into secondJoin from second in secondJoin.DefaultIfEmpty() select new { d, first, second }; if (!String.IsNullOrEmpty(request.searchValue)) { query = query.Where(x => x.r.RoomName.Contains(request.searchValue)); } int totalRow = await query.CountAsync(); if (request.sortColumnDirection == "desc") { switch (request.sortColumn) { case "0": query = query.OrderByDescending(r => r.r.Id); break; case "1": query = query.OrderByDescending(r => r.r.RoomCode); break; case "2": query = query.OrderByDescending(r => r.r.RoomName); break; case "3": query = query.OrderByDescending(r => r.e.TotalQuestions); break; case "5": query = query.OrderByDescending(r => r.e.TimeLimit); break; case "7": query = query.OrderByDescending(r => r.r.PublicRoom); break; } } else if (request.sortColumnDirection == "asc") { switch (request.sortColumn) { case "0": query = query.OrderBy(r => r.r.Id); break; case "1": query = query.OrderBy(r => r.r.RoomCode); break; case "2": query = query.OrderBy(r => r.r.RoomName); break; case "3": query = query.OrderBy(r => r.e.TotalQuestions); break; case "5": query = query.OrderBy(r => r.e.TimeLimit); break; case "7": query = query.OrderBy(r => r.r.PublicRoom); break; } } var data = await collect.Skip(request.Skip).Take(request.PageSize) .Select(x => new RoomViewModel() { Id = x.d.r.Id, RoomCode = x.d.r.RoomCode, RoomName = String.Format("<a href='/creator/examinroom/{0}'>{1}</ a>", x.d.r.Id, x.d.r.RoomName), TotalQuestions = x.d.e.TotalQuestions, TimeLimit = x.d.e.TimeLimit, PublicRoom = x.d.r.PublicRoom, CurrentQuestions = x.second.questionCount, UserCounts = x.first.userCount, Action = String.Format( "<a href = 'javascript:void(0)' data-toggle = 'tooltip' id = 'edit' data-id = '{0}' data-original-title='Edit' class='btn mr-5 btn-xs btn-warning btn-edit'><i class='glyphicon glyphicon-edit'></i> Sửa</a><a href = 'javascript:void(0)' data-toggle='tooltip' id='delete' data-id='{1}' data-original-title='Delete' class='btn btn-xs btn-danger btn-delete'><i class='glyphicon glyphicon-trash'></i> Xóa</a>", x.d.r.Id, x.d.r.Id) }).ToListAsync(); var result = new DatatableResult <List <RoomViewModel> >() { recordsTotal = totalRow, recordsFiltered = totalRow, Draw = request.Draw, Data = data }; return(result); }
public async Task <DatatableResult <List <ExamViewModel> > > GetListExam(DatatableRequestBase request) { var query = from e in _context.Exams join t in _context.Examtypes on e.ExamtypeId equals t.Id select new { e, t }; int totalRow = await query.CountAsync(); if (request.sortColumnDirection == "desc") { switch (request.sortColumn) { case "0": query = query.OrderByDescending(e => e.e.Id); break; case "1": query = query.OrderByDescending(e => e.e.ExamTitle); break; case "2": query = query.OrderByDescending(e => e.e.TotalQuestions); break; case "3": query = query.OrderByDescending(e => e.e.TimeLimit); break; case "4": query = query.OrderByDescending(e => e.e.Status); break; case "5": query = query.OrderByDescending(e => e.e.DateCreated); break; } } else if (request.sortColumnDirection == "asc") { switch (request.sortColumn) { case "0": query = query.OrderBy(e => e.e.Id); break; case "1": query = query.OrderBy(e => e.e.ExamTitle); break; case "2": query = query.OrderBy(e => e.e.TotalQuestions); break; case "3": query = query.OrderBy(e => e.e.TimeLimit); break; case "4": query = query.OrderBy(e => e.e.Status); break; case "5": query = query.OrderBy(e => e.e.DateCreated); break; } } var data = await query.Skip(request.Skip) .Take(request.PageSize) .Select(x => new ExamViewModel() { Id = x.e.Id, ExamTitle = x.e.ExamTitle, ExamDescription = x.e.ExamDescription, TotalQuestions = x.e.TotalQuestions, TimeLimit = x.e.TimeLimit, Status = x.e.Status, DateCreated = x.e.DateCreated, ExamTypeTitle = x.t.TypeTitle, Action = String.Format("<a href = 'javascript:void(0)' data-toggle = 'tooltip' id = 'edit' data-id = '{0}' data-original-title='Edit' class='btn mr-5 btn-xs btn-warning btn-edit'><i class='glyphicon glyphicon-edit'></i> Sửa</a><a href = 'javascript:void(0)' data-toggle='tooltip' id='delete' data-id='{1}' data-original-title='Delete' class='btn btn-xs btn-danger btn-delete'><i class='glyphicon glyphicon-trash'></i> Xóa</a>", x.e.Id, x.e.Id) } ).ToListAsync(); var result = new DatatableResult <List <ExamViewModel> >() { recordsTotal = totalRow, recordsFiltered = totalRow, Draw = request.Draw, Data = data }; return(result); }
public async Task <DatatableResult <List <UserViewModel> > > GetListUser(DatatableRequestBase request) { var query = from u in _context.Users join r in _context.Roles on u.RoleId equals r.Id select new { r, u }; if (!String.IsNullOrEmpty(request.searchValue)) { query = query.Where(x => x.u.Email.Contains(request.searchValue)); } int totalRow = await query.CountAsync(); if (request.sortColumnDirection == "desc") { switch (request.sortColumn) { case "0": query = query.OrderByDescending(r => r.u.Id); break; case "1": query = query.OrderByDescending(r => r.u.Email); break; case "2": query = query.OrderByDescending(r => r.u.FirstName); break; case "3": query = query.OrderByDescending(r => r.u.LastName); break; case "4": query = query.OrderByDescending(r => r.u.RoleId); break; case "5": query = query.OrderByDescending(r => r.u.JoinDate); break; } } else if (request.sortColumnDirection == "asc") { switch (request.sortColumn) { case "0": query = query.OrderBy(r => r.u.Id); break; case "1": query = query.OrderBy(r => r.u.Email); break; case "2": query = query.OrderBy(r => r.u.FirstName); break; case "3": query = query.OrderBy(r => r.u.LastName); break; case "4": query = query.OrderBy(r => r.u.RoleId); break; case "5": query = query.OrderBy(r => r.u.JoinDate); break; } } var data = await query.Skip(request.Skip).Take(request.PageSize) .Select(x => new UserViewModel() { Email = x.u.Email, FirstName = x.u.FirstName, PhoneNumber = x.u.PhoneNumber, Address = x.u.Address, LastName = x.u.LastName, JoinDate = x.u.JoinDate, Gender = x.u.Gender, Id = x.u.Id, RoleTitle = x.r.RoleTitle, Action = String.Format("<a href = 'javascript:void(0)' data-toggle = 'tooltip' id = 'edit' data-id = '{0}' data-original-title='Edit' class='btn mr-5 btn-xs btn-warning btn-edit'><i class='glyphicon glyphicon-edit'></i> Sửa</a><a href = 'javascript:void(0)' data-toggle='tooltip' id='delete' data-id='{1}' data-original-title='Delete' class='btn btn-xs btn-danger btn-delete'><i class='glyphicon glyphicon-trash'></i> Xóa</a>", x.u.Id, x.u.Id) }).ToListAsync(); var result = new DatatableResult <List <UserViewModel> >() { recordsTotal = totalRow, recordsFiltered = totalRow, Draw = request.Draw, Data = data }; return(result); }
public async Task <DatatableResult <List <QuestionViewModel> > > GetListQuestionByRoom(DatatableRequestBase request, int roomId) { var query = from r in _context.Rooms where r.Id == roomId join qd in _context.Questiondetails on r.ExamId equals qd.ExamId join q in _context.Questions on qd.QuestionId equals q.Id select q; if (!String.IsNullOrEmpty(request.searchValue)) { query = query.Where(x => x.QuestionContent.Contains(request.searchValue)); } int totalRow = await query.CountAsync(); if (request.sortColumnDirection == "desc") { switch (request.sortColumn) { case "0": query = query.OrderByDescending(r => r.Id); break; case "1": query = query.OrderByDescending(r => r.QuestionContent); break; case "2": query = query.OrderByDescending(r => r.QuestionType); break; case "3": query = query.OrderByDescending(r => r.DateCreated); break; } } else if (request.sortColumnDirection == "asc") { switch (request.sortColumn) { case "0": query = query.OrderBy(r => r.Id); break; case "1": query = query.OrderBy(r => r.QuestionContent); break; case "2": query = query.OrderBy(r => r.QuestionType); break; case "3": query = query.OrderBy(r => r.DateCreated); break; } } var data = await query.Skip(request.Skip).Take(request.PageSize) .Select(x => new QuestionViewModel() { Id = x.Id, QuestionContent = x.QuestionContent, QuestionType = x.QuestionType, DateCreated = x.DateCreated, Action = String.Format("<a href = 'javascript:void(0)' data-toggle = 'tooltip' id = 'edit' data-id = '{0}' data-original-title='Edit' class='btn mr-5 btn-xs btn-warning btn-edit'><i class='glyphicon glyphicon-edit'></i> Sửa</a><a href = 'javascript:void(0)' data-toggle='tooltip' id='delete' data-id='{1}' data-original-title='Delete' class='btn btn-xs btn-danger btn-delete'><i class='glyphicon glyphicon-trash'></i> Xóa</a>", x.Id, x.Id) }).ToListAsync(); var result = new DatatableResult <List <QuestionViewModel> >() { recordsTotal = totalRow, recordsFiltered = totalRow, Draw = request.Draw, Data = data }; return(result); }