public ActionResult GetUsers(string filter, int page = 1) { FilterViewModel obj = FilterViewModel.ToObject(filter); var neededSkills = obj.Skills.Where(x => x.Level > 0).Select(x => new BllUserSkill { Skill = x.Skill, Level = x.Level }); IEnumerable <BllUser> users; if (neededSkills.Count() < 1) { users = userService.UsersInRole(roleService.Find(programmerRole).Id); } else { users = userService.Get(neededSkills); } var usersForPage = users.Skip((page - 1) * usersPerPage).Take(usersPerPage).Cast <BllProgrammer>(); BrowseViewModel browseModel = new BrowseViewModel { Filter = obj, Users = usersForPage.ToList(), Page = page, PageCount = (int)Math.Ceiling((double)users.Count() / usersPerPage) }; return(PartialView("_UsersPartial", browseModel)); }