public Expression <Func <Database.User, bool> > GetFilter(List <int> BlockedUsersList) { Expression <Func <Database.User, bool> > filter = x => !BlockedUsersList.Contains(x.Id) && x.Active; if (!string.IsNullOrEmpty(FreeSearch)) { FreeSearch = FreeSearch.ToUpper(); filter = filter.And(x => x.Nickname.ToUpper().Contains(FreeSearch) || x.Gender.Gender1.ToUpper().Contains(FreeSearch) || x.Country.Name.ToUpper().Contains(FreeSearch) || x.Region.ToUpper().Contains(FreeSearch) || x.Language.ToUpper().Contains(FreeSearch) || x.RelationshipStatus.ToUpper().Contains(FreeSearch)); } else if (!string.IsNullOrEmpty(ConnectedListId) && ConnectedListId.Count() > 1) { var SelectedVoicerList = ConnectedListId.Split(',').Where(x => !string.IsNullOrEmpty(x)).Select(x => Convert.ToInt32(x)).ToList(); filter = filter.And(x => SelectedVoicerList.Contains(x.Id)); } else { if (!string.IsNullOrEmpty(DateOfBirth)) { filter = filter.And(x => x.BirthDate == DateOfBirth); } if (GenderId != null && GenderId > 0) { filter = filter.And(x => x.GenderId == GenderId); } if (CountryId != null && CountryId > 0) { filter = filter.And(x => x.CountryId == CountryId); } if (!OccupationId.IsEmpty()) { filter = filter.And(x => x.UsersOccupationsUsers.Any(y => OccupationId.Contains(y.UsersOccupationsId))); } if (!InterestHobbyId.IsEmpty()) { filter = filter.And(x => x.UsersHobbyUsers.Any(y => InterestHobbyId.Contains(y.UsersHobbyId))); } if (!string.IsNullOrEmpty(Region)) { filter = filter.And(x => x.Region.ToUpper().Contains(Region.ToUpper())); } if (!string.IsNullOrEmpty(Language)) { filter = filter.And(x => x.Language.ToUpper().Contains(Language.ToUpper())); } if (!string.IsNullOrEmpty(RelationshipStatus)) { filter = filter.And(x => x.RelationshipStatus.ToUpper().Contains(RelationshipStatus.ToUpper())); } } return(filter); }
public Expression <Func <Database.UsersIP, bool> > GetFilterForIP(List <int> BlockedUsersList) { Expression <Func <Database.UsersIP, bool> > filter = x => !BlockedUsersList.Contains(x.Id) && x.User.Active; if (!string.IsNullOrEmpty(FreeSearch)) { FreeSearch = FreeSearch.ToUpper(); filter = filter.And(x => x.User.Nickname.ToUpper().Contains(FreeSearch) || x.User.Gender.Gender1.ToUpper().Contains(FreeSearch) || x.User.Country.Name.ToUpper().Contains(FreeSearch) || x.User.Region.ToUpper().Contains(FreeSearch) || x.User.Language.ToUpper().Contains(FreeSearch) || x.User.RelationshipStatus.ToUpper().Contains(FreeSearch)); } else if (!string.IsNullOrEmpty(ConnectedListId) && ConnectedListId.Count() > 1) { var SelectedVoicerList = ConnectedListId.Split(',').Where(x => !string.IsNullOrEmpty(x)).Select(x => Convert.ToInt32(x)).ToList(); filter = filter.And(x => SelectedVoicerList.Contains(x.Id)); } else { if (!string.IsNullOrEmpty(DateOfBirth)) { //DateTime dt = Convert.ToDateTime(DateOfBirth); filter = filter.And(x => x.UsersIPFilters.FirstOrDefault().BirthDate == DateOfBirth); } if (GenderId != null && GenderId > 0) { filter = filter.And(x => x.UsersIPFilters.FirstOrDefault().GenderId == GenderId); } if (CountryId != null && CountryId > 0) { filter = filter.And(x => x.UsersIPFilters.FirstOrDefault().CountryId == CountryId); } if (OccupationId != null && OccupationId.Count > 0) { foreach (var occ_id in OccupationId) { var item = occ_id.ToString(); filter = filter.And(x => (x.UsersIPFilters.FirstOrDefault().OccupationByComma.Contains(", " + item + ",")) || (x.UsersIPFilters.FirstOrDefault().OccupationByComma.StartsWith(item + ", ")) || (x.UsersIPFilters.FirstOrDefault().OccupationByComma == item) || (x.UsersIPFilters.FirstOrDefault().OccupationByComma.EndsWith(", " + item))); } } if (InterestHobbyId != null && InterestHobbyId.Count > 0) { foreach (var hobby_id in InterestHobbyId) { var item = hobby_id.ToString(); filter = filter.And(x => (x.UsersIPFilters.FirstOrDefault().HobbiesByComma.Contains(", " + item + ",")) || (x.UsersIPFilters.FirstOrDefault().HobbiesByComma.StartsWith(item + ", ")) || (x.UsersIPFilters.FirstOrDefault().HobbiesByComma == item) || (x.UsersIPFilters.FirstOrDefault().HobbiesByComma.EndsWith(", " + item))); } } if (!string.IsNullOrEmpty(Region)) { filter = filter.And(x => x.UsersIPFilters.FirstOrDefault().Region.ToUpper().Contains(Region.ToUpper())); } if (!string.IsNullOrEmpty(Language)) { filter = filter.And(x => x.UsersIPFilters.FirstOrDefault().Language.ToUpper().Contains(Language.ToUpper())); } if (!string.IsNullOrEmpty(RelationshipStatus)) { filter = filter.And(x => x.UsersIPFilters.FirstOrDefault().RelationshipStatus.ToUpper().Contains(RelationshipStatus.ToUpper())); } } return(filter); }