예제 #1
0
        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);
        }
예제 #2
0
        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);
        }