예제 #1
0
        public UsersFilterResult GetAllUsers(UsersFilterCriteria criteria)
        {
            IQueryable <ApplicationUser> users = _context.Users.AsQueryable();

            if (!string.IsNullOrEmpty(criteria.FirstName?.Trim()))
            {
                // Case-insensitive string comparison is not supported as query string
                string firstNameToLower = criteria.FirstName.Trim().ToLower();
                users = users.Where(u => u.FirstName.ToLower().StartsWith(firstNameToLower));
            }

            if (!string.IsNullOrEmpty(criteria.LastName?.Trim()))
            {
                string lastNameToLower = criteria.LastName.Trim().ToLower();
                users = users.Where(u => u.LastName.ToLower().StartsWith(lastNameToLower));
            }

            int totalItems = users.Count();

            return(new UsersFilterResult()
            {
                Users = users.Skip((criteria.PageNumber - 1) * criteria.ItemsPerPage).Take(criteria.ItemsPerPage),
                TotalItems = totalItems
            });
        }
예제 #2
0
 public UsersFilterResult GetAllUsers(UsersFilterCriteria criteria)
 {
     return(_userManager.GetAllUsers(criteria));
 }
예제 #3
0
        public IHttpActionResult GetUsers([FromUri] UsersFilterCriteria criteria)
        {
            var users = _userService.GetAllUsers(criteria);

            return(Ok(users));
        }