public TableResultJson <UserViewModel> GetUserPaged(TableRequest request) { var dataSource = userRepository.GetAll().OrderByDescending(x => x.CreatedDate).AsEnumerable(); var dataSourceViewModels = mapper.Map <List <UserViewModel> >(dataSource).AsEnumerable(); TableResultJson <UserViewModel> response = new TableResultJson <UserViewModel>(); response.draw = request.draw; response.recordsFiltered = dataSourceViewModels.Count(); if (request.columns[1].search != null) { if (!string.IsNullOrEmpty(request.columns[1].search.value)) { dataSourceViewModels = dataSourceViewModels.Where(x => x.FullName.Contains(request.columns[1].search.value)); } } if (request.columns[2].search != null) { if (!string.IsNullOrEmpty(request.columns[2].search.value)) { dataSourceViewModels = dataSourceViewModels.Where(x => x.Email.Contains(request.columns[2].search.value)); } } if (request.columns[3].search != null) { if (!string.IsNullOrEmpty(request.columns[3].search.value)) { dataSourceViewModels = dataSourceViewModels.Where(x => x.PhoneNumber.Contains(request.columns[3].search.value)); } } if (request.columns[4].search != null) { if (!string.IsNullOrEmpty(request.columns[4].search.value)) { dataSourceViewModels = dataSourceViewModels.Where(x => (x.FullAddress.Contains(request.columns[4].search.value))); } } if (request.columns[9].search != null) { var _value = request.columns[9].search.value; if (!string.IsNullOrEmpty(_value)) { if (_value != "5") { var _status = ItemStatus.TryParse(_value, out ItemStatus __status); dataSourceViewModels = dataSourceViewModels.Where(x => x.Status == __status); } } } dataSourceViewModels = dataSourceViewModels.Skip(request.start).Take(request.length); response.data = dataSourceViewModels.ToList(); foreach (UserViewModel item in response.data) { item.Index = response.data.IndexOf(item) + request.start + 1; } return(response); }