Esempio n. 1
0
        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);
        }