예제 #1
0
        private UserPagedDataRequest ParsePagedDataRequest(DataSourceRequest request, UserSearchModel model)
        {
            var dataRequest = new UserPagedDataRequest
            {
                LastName  = model.LastName,
                PageIndex = request.Page - 1,
                PageSize  = request.PageSize
            };

            switch (model.Status)
            {
            case "1":
                dataRequest.Active = true;
                break;

            case "0":
                dataRequest.Active = false;
                break;
            }

            SortDescriptor sort = request.Sorts.FirstOrDefault();

            if (sort != null)
            {
                UserSortField sortField;
                Enum.TryParse(sort.Member, out sortField);
                dataRequest.SortField = sortField;

                dataRequest.SortOrder = sort.SortDirection == ListSortDirection.Ascending
                    ? SortOrder.Ascending
                    : SortOrder.Descending;
            }

            return(dataRequest);
        }
예제 #2
0
        public async Task <IPagedList <User> > GetUsersAsync(UserPagedDataRequest request)
        {
            var query = _repository.Entities.AsQueryable();

            if (!string.IsNullOrWhiteSpace(request.LastName))
            {
                query = query.Where(x => x.LastName.StartsWith(request.LastName));
            }

            if (!string.IsNullOrWhiteSpace(request.RoleName))
            {
                query = query.Where(x => x.Roles.Any(r => r.Name == request.RoleName));
            }

            if (request.Active.HasValue)
            {
                query = query.Where(x => x.Active == request.Active.Value);
            }

            string orderBy = request.SortField.ToString();

            if (QueryHelper.PropertyExists <User>(orderBy))
            {
                query = request.SortOrder == SortOrder.Ascending ? query.OrderByProperty(orderBy) : query.OrderByPropertyDescending(orderBy);
            }
            else
            {
                query = query.OrderBy(x => x.LastName);
            }

            var result = new PagedList <User>();
            await result.CreateAsync(query, request.PageIndex, request.PageSize);

            return(result);
        }
예제 #3
0
        public async Task <IPagedList <User> > GetUsersAsync(UserPagedDataRequest request)
        {
            var query = _context.Users
                        .Include(x => x.UserRoles)
                        .AsQueryable();

            if (!string.IsNullOrWhiteSpace(request.LastName))
            {
                query = query.Where(x => x.LastName.StartsWith(request.LastName));
            }

            if (request.RoleId.HasValue)
            {
                query = query.Where(x => x.UserRoles.Any(r => r.RoleId == request.RoleId));
            }

            if (request.IsActive.HasValue)
            {
                query = query.Where(x => x.IsActive == request.IsActive.Value);
            }

            string orderBy = request.SortField.ToString();

            if (QueryHelper.PropertyExists <User>(orderBy))
            {
                query = request.SortOrder == SortOrder.Ascending ? query.OrderByProperty(orderBy) : query.OrderByPropertyDescending(orderBy);
            }
            else
            {
                query = query.OrderBy(x => x.LastLoginDate);
            }

            var result = await PagedList <User> .CreateAsync(query, request.PageIndex, request.PageSize);

            return(result);
        }
 public async Task <IPagedList <User> > GetUsersAsync(UserPagedDataRequest request)
 {