private IQueryable <User> FindUsers(ViewModels.UserInfoBindingModel searchUser) { var sex = SexEnum.Unknown; switch (searchUser.Sex) { case "Male": sex = SexEnum.Male; break; case "Female": sex = SexEnum.Female; break; } var birthDate = new DateTime(); if (searchUser.BirthDate != null) { birthDate = DateTime.ParseExact(searchUser.BirthDate, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture); } return(from users in _context.Users where (searchUser.UserName == null || users.UserName.StartsWith(searchUser.UserName)) && (searchUser.FirstName == null || users.FirstName.StartsWith(searchUser.FirstName)) && (searchUser.LastName == null || users.LastName.StartsWith(searchUser.LastName)) && (searchUser.Email == null || users.Email == searchUser.Email) && (searchUser.Sex == null || users.Sex == sex) && (searchUser.BirthDate == null || users.BirthDate == birthDate) select users); }
public IEnumerable <User> FindUsers(ViewModels.UserInfoBindingModel searchUser, int usersPerPage, int page) { if (page < 1) { page = 1; } return(FindUsers(searchUser) .OrderBy(u => u.FirstName) .ThenBy(u => u.LastName) .Skip(usersPerPage * (page - 1)) .Take(usersPerPage)); }
public int FindUsersPageCount(ViewModels.UserInfoBindingModel searchUser, int usersPerPage) { return(Pagination.CountPages(FindUsers(searchUser).Count(), usersPerPage)); }