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;
}