コード例 #1
0
        private static UserSearchParams ConverToVkUserSearchParams(FilterModel filter)
        {
            var userSearchParams = new UserSearchParams()
            {
                AgeFrom  = filter.Years != null ? (ushort)filter.Years.Min : default(ushort?),
                AgeTo    = filter.Years != null ? (ushort)filter.Years.Max : default(ushort?),
                Country  = GetCountryId(filter.Coutry),    //!string.IsNullOrEmpty(filter.Coutry) ? GetCountryId(filter.Coutry) : default(int?),
                City     = GetCityId(filter.City),         // !string.IsNullOrEmpty(filter.City) ? GetCityId(filter.City) : default(int?),
                Sex      = filter.Sex.HasValue ? (VkNet.Enums.Sex)filter.Sex : Sex.Unknown,
                HasPhoto = filter.HasPhoto,
                Online   = filter.IsOnline,
                Offset   = (uint)filter.Offset,
                Status   = filter.FamilyStatus.HasValue
                                    ? (MaritalStatus)((int)filter.FamilyStatus.Value)
                                    : default(MaritalStatus?),
                Count = 1000,
            };

            if (filter.SortBy != SearchSortBy.None)
            {
                userSearchParams.Sort = filter.SortBy == SearchSortBy.ByDate? UserSort.ByRegDate : UserSort.ByPopularity;
            }

            return(userSearchParams);
        }
コード例 #2
0
        private bool CheckIfOk(User user, UserSearchParams param)
        {
            bool isOk = true;

            if (param.Username != null && param.Username != "")
            {
                if (!user.Username.ToLower().Equals(param.Username.ToLower()))
                {
                    isOk = false;
                }
            }
            if (param.Name != null && param.Name != "")
            {
                if (!param.Name.ToLower().Equals(user.Name.ToLower()))
                {
                    isOk = false;
                }
            }
            if (param.LastName != null && param.LastName != "")
            {
                if (!user.LastName.ToLower().Equals(param.LastName.ToLower()))
                {
                    isOk = false;
                }
            }

            return(isOk);
        }
コード例 #3
0
ファイル: UsersCategory.cs プロジェクト: ProESM/vk
		public ReadOnlyCollection<User> Search(out int itemsCount, UserSearchParams @params)
		{
			var response = _vk.Call("users.search", @params);

			itemsCount = response["count"];

			return response["items"].ToReadOnlyCollectionOf<User>(r => r);
		}
コード例 #4
0
ファイル: UsersCategory.cs プロジェクト: pakimov863/VKClient
        public ReadOnlyCollection <User> Search(out int itemsCount, UserSearchParams @params)
        {
            var response = _vk.Call("users.search", @params, true);

            itemsCount = response["count"];

            return(response["items"].ToReadOnlyCollectionOf <User>(r => r));
        }
コード例 #5
0
        public ReadOnlyCollection <User> Search(out int itemsCount, UserSearchParams @params)
        {
            var response = Search(@params);

            itemsCount = Convert.ToInt32(response.TotalCount);

            return(response.ToReadOnlyCollection());
        }
コード例 #6
0
ファイル: UserService.cs プロジェクト: andrew-v-2019/VkApi
        public async Task <List <UserExtended> > Search(UserSearchParams parameters)
        {
            using (var api = _apiFactory.CreateVkApi())
            {
                var searchResult = await api.Users.SearchAsync(parameters);

                return(searchResult.Select(x => new UserExtended(x)).ToList());
            }
        }
コード例 #7
0
        public ReadOnlyCollection <User> Search(out int itemsCount, UserSearchParams @params)
        {
            if (string.IsNullOrWhiteSpace(@params.Query))
            {
                throw new ArgumentException("Query can not be null or empty.");
            }

            var response = _vk.Call("users.search", @params);

            itemsCount = response["count"];

            return(response["items"].ToReadOnlyCollectionOf <User>(r => r));
        }
コード例 #8
0
        public async Task <IActionResult> Search(string username, string name, string lastName)
        {
            if (string.IsNullOrWhiteSpace(username) && string.IsNullOrWhiteSpace(name) && string.IsNullOrWhiteSpace(lastName))
            {
                return(BadRequest(new { Message = "Invalid parameters supplied." }));
            }
            var param = new UserSearchParams {
                LastName = lastName, Name = name, Username = username
            };
            var ret = await service.Search(param);

            return(Ok(mapper.Map <IEnumerable <UserResource> >(ret)));
        }
コード例 #9
0
ファイル: UsersCategory.cs プロジェクト: NorDroN/vk
        public ReadOnlyCollection <User> Search(out int itemsCount, UserSearchParams @params)
        {
            if (string.IsNullOrWhiteSpace(@params.Query))
            {
                throw new ArgumentException("Query can not be null or empty.");
            }
            var parameters = new VkParameters
            {
                { "q", @params.Query },
                { "sort", @params.Sort },
                { "offset", @params.Offset },
                { "count", @params.Count },
                { "fields", @params.Fields },
                { "city", @params.City },
                { "country", @params.Country },
                { "hometown", @params.Hometown },
                { "university_country", @params.UniversityCountry },
                { "university", @params.University },
                { "university_year", @params.UniversityYear },
                { "university_faculty", @params.UniversityFaculty },
                { "university_chair", @params.UniversityChair },
                { "sex", @params.Sex },
                { "status", @params.Status },
                { "age_from", @params.AgeFrom },
                { "age_to", @params.AgeTo },
                { "birth_day", @params.BirthDay },
                { "birth_month", @params.BirthMonth },
                { "birth_year", @params.BirthYear },
                { "online", @params.Online },
                { "has_photo", @params.HasPhoto },
                { "school_country", @params.SchoolCountry },
                { "school_city", @params.SchoolCity },
                { "school_class", @params.SchoolClass },
                { "school", @params.School },
                { "school_year", @params.SchoolYear },
                { "religion", @params.Religion },
                { "interests", @params.Interests },
                { "company", @params.Company },
                { "position", @params.Position },
                { "group_id", @params.GroupId },
                { "from_list", @params.FromList }
            };
            var response = _vk.Call("users.search", parameters);

            itemsCount = response["count"];

            return(response["items"].ToReadOnlyCollectionOf <User>(r => r));
        }
コード例 #10
0
ファイル: Program.cs プロジェクト: andrew-v-2019/VkApi
        private static async Task <List <UserExtended> > GetUsersFromCityForBackgroundWork()
        {
            var cityId = _cityIds.FirstOrDefault();
            var param  = new UserSearchParams
            {
                Sex     = Sex.Male,
                City    = cityId,
                Sort    = UserSort.ByRegDate,
                Fields  = GetProfileFields(),
                Count   = 1000,
                AgeFrom = MinAge,
                AgeTo   = MaxAge
            };
            var res = await _userService.Search(param);

            res = res.Where(x => !x.BlackListed()).Select(x => x).ToList();
            return(res);
        }
コード例 #11
0
        public AddWindow(Client user)
        {
            clientId = user.Id;
            InitializeComponent();
            var api = new VkApi();

            context = new MyDbContext();

            api.Authorize(new ApiAuthParams
            {
                ApplicationId = 123456,
                Login         = "******",
                Password      = "******",
                Settings      = Settings.All
            });
            searchParam = new UserSearchParams();
            vk          = api;
            searchUsers = new BindingList <User>();
        }
コード例 #12
0
        private async Task <List <UserExtended> > SearchUsers(AgeRange ageRange, int cityId)
        {
            var searchParams = new UserSearchParams
            {
                AgeFrom  = (ushort?)ageRange.Min,
                AgeTo    = (ushort?)ageRange.Max,
                Status   = MaritalStatus.Single,
                Sex      = Sex.Female,
                HasPhoto = true,
                Sort     = UserSort.ByRegDate,
                Fields   = GetFields(),
                Count    = 1000,
                Country  = 1,
                City     = cityId
                           //Online = true
            };

            var users = await _userService.Search(searchParams);

            return(users);
        }
コード例 #13
0
 public async Task <IEnumerable <BookingAppBackend.Model.Users.User> > Search(UserSearchParams param)
 {
     return(await repo.Search(param));
 }
コード例 #14
0
ファイル: UsersCategory.cs プロジェクト: nijikilling/vk
 public VkCollection <User> Search(UserSearchParams @params)
 {
     return(_vk.Call("users.search", @params, false).ToVkCollectionOf <User>(r => r));
 }
コード例 #15
0
 public VkCollection <User> Search(UserSearchParams @params)
 {
     return(_vk.Call(methodName: "users.search", parameters: @params).ToVkCollectionOf <User>(selector: r => r));
 }
コード例 #16
0
 /// <inheritdoc />
 public Task <VkCollection <User> > SearchAsync(UserSearchParams @params)
 {
     return(TypeHelper.TryInvokeMethodAsync(func: () => _vk.Users.Search(@params: @params)));
 }
コード例 #17
0
        public static List <PersonModel> GetPersons(FilterModel filter)
        {
            UserSearchParams userSearchParams = ConverToVkUserSearchParams(filter);

            userSearchParams.Fields = ProfileFields.All | ProfileFields.Counters;

            var peoples = api.Users.Search(userSearchParams);

            var unbannedUsers = peoples.Where(x => !Bans.Contains(x.Domain));

            var canWrite = unbannedUsers.Where(x => x.CanWritePrivateMessage && !x.Blacklisted);

            var niceGrills = canWrite.Where(x => IsNormalGrill(x));

            var myFilteredPeople = niceGrills.ToList();

            // Если не задали условия по количеству друзей и падпинчикиов.
            if (filter.FriendsCount == null && filter.SubsCount == null)
            {
                return(myFilteredPeople.Select(x => new PersonModel(x)).ToList());
            }


            // Иначе молиться Богам, чтобы нас не зобанили.
            var userCounters = new Dictionary <User, Counters>();

            foreach (var ppl in myFilteredPeople)
            {
                var counters = api.Users.Get(new long[] { ppl.Id }, ProfileFields.Counters).FirstOrDefault().Counters;

                userCounters.Add(ppl, counters);
            }

            foreach (var userCounter in userCounters)
            {
                userCounter.Key.Counters = userCounter.Value;
            }

            myFilteredPeople = userCounters.Keys.ToList();

            IEnumerable <User> users = myFilteredPeople;


            if (filter.FriendsCount != null)
            {
                users = users.Where(x =>
                                    x.Counters.Friends.HasValue
                                            ? x.Counters.Friends.Value >= filter.FriendsCount.Min
                                            : true);

                users = users.Where(x =>
                                    x.Counters.Friends.HasValue
                                            ? x.Counters.Friends.Value <= filter.FriendsCount.Max
                                            : true);
            }

            if (filter.SubsCount != null)
            {
                users = users.Where(x =>
                                    x.Counters.Followers.HasValue
                                            ? x.Counters.Followers.Value >= filter.SubsCount.Min
                                            : true);

                users = users.Where(x =>
                                    x.Counters.Followers.HasValue
                                            ? x.Counters.Followers.Value <= filter.SubsCount.Max
                                            : true);
            }

            return(users.Select(x => new PersonModel(x)).ToList());
        }
コード例 #18
0
ファイル: UsersCategory.cs プロジェクト: vknet/vk
 public VkCollection<User> Search(UserSearchParams @params)
 {
     return _vk.Call("users.search", @params, false).ToVkCollectionOf<User>(r => r);
 }
コード例 #19
0
        public async Task <IEnumerable <User> > Search(UserSearchParams param)
        {
            var temp = await context.RegisteredUsers.ToListAsync();

            return(temp.Where(i => CheckIfOk(i, param)));
        }
コード例 #20
0
ファイル: UsersCategory.cs プロジェクト: Olegasdf/vk
        public ReadOnlyCollection<User> Search(out int itemsCount, UserSearchParams @params)
        {
            if (string.IsNullOrWhiteSpace(@params.Query))
            {
                throw new ArgumentException("Query can not be null or empty.");
            }

            var response = _vk.Call("users.search", @params);

            itemsCount = response["count"];

            return response["items"].ToReadOnlyCollectionOf<User>(r => r);
        }