BAL.Manager.UserManager.GetUserPage C# (CSharp) Method

GetUserPage() public method

public GetUserPage ( string searchString, int page, int pageSize, int roleId ) : PagerDTO
searchString string
page int
pageSize int
roleId int
return PagerDTO
        public PagerDTO<UserDTO> GetUserPage(string searchString, int page, int pageSize, int roleId)
        {
            List<User> users = new List<User>();

            if (!String.IsNullOrEmpty(searchString))
            {
                users.AddRange(
                    uOW.UserRepo.Get()
                        .Where(s => (s.UserName.ToLower()).Contains(searchString.ToLower())
                                    || (s.Email.ToLower()).Contains(searchString.ToLower()))
                    );
            }
            else
            {
                users.AddRange(uOW.UserRepo.Get());
            }

            if (roleId > 0)
            {
                users = users.Where(s => (s.RoleId == roleId)).ToList();
            }

            var pageCount = (double) users.Count()/pageSize;

            var model = new PagerDTO<UserDTO>
            {
                CurrentPage = page,
                PageCount = (int) Math.Ceiling(pageCount)
            };

            // if asked page is greater then avilable ones
            if (model.PageCount < page)
            {
                return model;
            }

            var skip = pageSize*(page - 1);
            var resultList = Mapper.Map<IEnumerable<UserDTO>>(users.Skip(skip).Take(pageSize)).ToList();

            model.Data = resultList;

            return model;
        }