public async Task <ActionResult> List(FilterIndividualModel filter) { var response = await WepApiMethod.SendApiAsync <DataTableResponse>(HttpVerbs.Post, $"Administration/Individual/GetAll", filter); return(Content(JsonConvert.SerializeObject(response.Data), "application/json")); }
public IHttpActionResult GetAllLearners(FilterIndividualModel request) { var users = db.UserRole.Where(u => u.UserAccount.User.Display && u.Role.Name == RoleNames.eLearningLearner).Select(x => x.UserAccount.User); if (users == null) { return(NotFound()); } var totalCount = users.Count(); //advance search var query = users.Where(s => (request.Name == null || s.Name.Contains(request.Name)) && (request.ICNo == null || s.ICNo.Contains(request.ICNo)) && (request.Email == null || s.Email.Contains(request.Email)) && (request.MobileNo == null || s.MobileNo.Contains(request.MobileNo)) ); //quick search if (!string.IsNullOrEmpty(request.search.value)) { var value = request.search.value.Trim(); query = query.Where(p => p.Name.Contains(value) || p.ICNo.Contains(value) || p.Email.Contains(value) || p.MobileNo.Contains(value) ); } var filteredCount = query.Count(); //order if (request.order != null) { string sortBy = request.columns[request.order[0].column].data; bool sortAscending = request.order[0].dir.ToLower() == "asc"; switch (sortBy) { case "Name": if (sortAscending) { query = query.OrderBy(o => o.Name); } else { query = query.OrderByDescending(o => o.Name); } break; case "ICNo": if (sortAscending) { query = query.OrderBy(o => o.ICNo); } else { query = query.OrderByDescending(o => o.ICNo); } break; case "Email": if (sortAscending) { query = query.OrderBy(o => o.Email); } else { query = query.OrderByDescending(o => o.Email); } break; case "MobileNo": if (sortAscending) { query = query.OrderBy(o => o.MobileNo); } else { query = query.OrderByDescending(o => o.MobileNo); } break; default: query = query.OrderByDescending(o => o.Name); break; } } else { query = query.OrderByDescending(o => o.Name); } var data = query.Skip(request.start).Take(request.length) .Select(s => new IndividualModel { Id = s.Id, Name = s.Name, Email = s.Email, ICNo = s.ICNo, MobileNo = s.MobileNo, Status = s.UserAccount.IsEnable }).ToList(); return(Ok(new DataTableResponse { draw = request.draw, recordsTotal = totalCount, recordsFiltered = filteredCount, data = data.ToArray() })); }