Example #1
0
        public User Get(long userId, ProfileFields fields = null,
            NameCase nameCase = null)
        {
            VkErrors.ThrowIfNumberIsNegative(() => userId);

            var parameters = new VkParameters { { "fields", fields }, { "name_case", nameCase }, { "user_ids", userId } };

            VkResponseArray response = _vk.Call("users.get", parameters, true);

            return response[0];
        }
Example #2
0
        public ReadOnlyCollection<User> Get([NotNull] IEnumerable<long> userIds, ProfileFields fields = null, NameCase nameCase = null)
        {
            if (userIds == null)
                throw new ArgumentNullException("userIds");

            var parameters = new VkParameters { { "fields", fields }, { "name_case", nameCase } };
            parameters.Add("user_ids", userIds);

            VkResponseArray response = _vk.Call("users.get", parameters);

            return response.ToReadOnlyCollectionOf<User>(x => x);
        }
Example #3
0
        public ReadOnlyCollection<User> Get(long uid, ProfileFields fields = null, int? count = null, int? offset = null, FriendsOrder order = null, NameCase nameCase = null, int? listId = null)
        {
            if(listId != null && listId < 0)
				throw new ArgumentOutOfRangeException("listId", "listId must be a positive number.");
			
			var parameters = new VkParameters { { "user_id", uid }, { "fields", fields }, { "count", count }, { "offset", offset }, { "order", order }, {"list_id", listId} , {"name_case", nameCase}};

            var response = _vk.Call("friends.get", parameters);

		    if (fields != null)
                return response["items"].ToReadOnlyCollectionOf<User>(x => x);
		    return response.ToReadOnlyCollectionOf(id => new User { Id = id });
        }
        public User Get(int userId, ProfileFields[] fields = null, NameCase nameCase = NameCase.nom)
        {
            NameValueCollection qs = new NameValueCollection();
            qs["uids"] = userId.ToString();

            if (fields != null)
                qs["fields"] = String.Join(",", from field in fields select field.ToString());

            qs["name_case"] = nameCase.ToString();
            XmlDocument answer = VkResponse.ExecuteCommand("users.get", qs);
            XmlNode usersNodes = answer.SelectSingleNode("response/user");
            User user = new User(usersNodes);
            return user;
        }
        public ReadOnlyCollection<User> GetAllFollowers(long? userId = null, ProfileFields fields = null, NameCase nameCase = null)
        {
            const int count = 1000;
            var i = 0;
            var result = new List<User>();

            do
            {
                var currentItems = _users.GetFollowers(userId, count, i * count, fields, nameCase);
                if (currentItems != null) result.AddRange(currentItems);
            } while (++i * count < (_vk.CountFromLastResponse ?? 0));

            return result.ToReadOnlyCollection();
        }
        public ReadOnlyCollection<User> GetAll(long uid, ProfileFields fields = null, FriendsOrder order = null, NameCase nameCase = null, int? listId = null)
        {
            const int count = 50;
            var i = 0;
            var result = new List<User>();

            do
            {
                var currentItems = _friends.Get(uid, fields, count, i * count, order, nameCase, listId);
                if (currentItems != null) result.AddRange(currentItems);
            } while (++i * count < (_vk.CountFromLastResponse ?? 0));

            return result.ToReadOnlyCollection();
        }
        public User Get(int userId, ProfileFields field = ProfileFields.all, NameCase nameCase = NameCase.nom)
        {
            if (field == ProfileFields.all)
            {
                var values = Enum.GetValues(typeof(ProfileFields));
                List<ProfileFields> allfields = new List<ProfileFields>();

                for (int i = 0; i < values.Length; i++)
                {
                    if ((ProfileFields)values.GetValue(i) != ProfileFields.all)
                        allfields.Add((ProfileFields)values.GetValue(i));
                }
                return Get(userId, allfields.ToArray(), nameCase);
            }

            return Get(userId, new[] { field }, nameCase);
        }
Example #8
0
		public ReadOnlyCollection<User> Get(long uid, ProfileFields fields = null, int? count = null, int? offset = null, FriendsOrder order = null, NameCase nameCase = null, int? listId = null)
		{
			if (listId != null && listId < 0)
				throw new ArgumentOutOfRangeException("listId", "listId must be a positive number.");

			var parameters = new FriendsGetParams
			{
				UserId = uid,
				Count = count,
				Offset = offset,
				Fields = fields,
				NameCase = nameCase,
				ListId = listId,
				Order = order
			};

			return Get(parameters).ToReadOnlyCollection();
		}
        public List<User> Get(List<int> userIds, ProfileFields[] fields = null, NameCase nameCase = NameCase.nom)
        {
            List<User> users = new List<User>();

            NameValueCollection qs = new NameValueCollection();
            qs["uids"] = String.Join(",", from id in userIds select id);

            if (fields != null)
                qs["fields"] = String.Join(",", from field in fields select field.ToString());

            qs["name_case"] = nameCase.ToString();

            XmlDocument answer = VkResponse.ExecuteCommand("users.get", qs);
            XmlNodeList usersNodes = answer.SelectNodes("response/user");

            if (usersNodes != null)
                foreach (XmlNode user in usersNodes)
                {
                    users.Add(new User(user));
                }

            return users;
        }
Example #10
0
		public ReadOnlyCollection<User> GetChatUsers(IEnumerable<long> chatIds, UsersFields fields, NameCase nameCase)
		{
			var parameters = new VkParameters {

				{ "chat_ids", chatIds },
				{ "fields", fields },
				{ "name_case", nameCase }
			};

			var response = _vk.Call("messages.getChatUsers", parameters);

			return response.ToReadOnlyCollectionOf(x => fields != null ? x : new User { Id = (long)x });
		}
Example #11
0
        public async Task <ReadOnlyCollection <User> > GetAsync([NotNull] IEnumerable <string> screenNames, ProfileFields fields = null, NameCase nameCase = null)
        {
            if (screenNames == null)
            {
                throw new ArgumentNullException("screenNames");
            }

            var parameters = new VkParameters
            {
                { "user_ids", screenNames },
                { "fields", fields },
                { "name_case", nameCase }
            };

            VkResponseArray response = await _vk.CallAsync("users.get", parameters);

            return(response.ToReadOnlyCollectionOf <User>(x => x));
        }
Example #12
0
        public ReadOnlyCollection<User> GetInvitedUsers(long groupId, out int userCount, long? offset = null, long? count = null, UsersFields fields = null, NameCase nameCase = null)
        {
            var response = GetInvitedUsers(groupId, offset, count, fields, nameCase);

            userCount = Convert.ToInt32(response.TotalCount);

            return response.ToReadOnlyCollection();
        }
Example #13
0
 public NewsBannedExList GetBannedEx(UsersFields fields = null, NameCase nameCase = null)
 {
     var parameters = new VkParameters
     {
         { "extended", true },
         { "fields", fields },
         { "name_case", nameCase }
     };
     return _vk.Call("newsfeed.getBanned", parameters);
 }
Example #14
0
        public User Get([NotNull] string screenName, ProfileFields fields = null, NameCase nameCase = null)
        {
            VkErrors.ThrowIfNullOrEmpty(() => screenName);

            ReadOnlyCollection<User> users = Get(new[] {screenName}, fields, nameCase);
            return users.Count > 0 ? users[0] : null;
        }
 /// <summary>Возвращает список идентификаторов друзей пользователя или расширенную информацию о друзьях пользователя (при использовании параметра</summary>
 /// <param name="uid">идентификатор пользователя, для которого необходимо получить список друзей</param>
 /// <param name="fields">перечисленные через запятую поля анкет, необходимые для получения</param>
 /// <param name="name_case">падеж для склонения имени и фамилии пользователя</param>
 /// <param name="count">количество друзей, которое нужно вернуть</param>
 /// <param name="offset">смещение, необходимое для выборки определенного подмножества друзей</param>
 /// <param name="lid">идентификатор списка друзей, полученный методом friends</param>
 /// <param name="order">Порядок в котором нужно вернуть список друзей</param>
 /// <returns>Ответ сервера в XML или JSON формате.</returns>
 private VKResponseBase get(System.Int64? uid, ProfileFields? fields, NameCase? name_case, System.Int32? count, System.Int32? offset, System.Int64? lid, string order)
 {
     manager.AddValueByName("@uid", uid);
     manager.AddValueByName("@fields", fields);
     manager.AddValueByName("@name_case", name_case);
     manager.AddValueByName("@count", count);
     manager.AddValueByName("@offset", offset);
     manager.AddValueByName("@lid", lid);
     manager.AddValueByName("@order", order);
     return new VKResponseBase(GetResponse("get"), IsXMLResponse);
 }
 /// <summary>Возвращает список идентификаторов друзей пользователя или расширенную информацию о друзьях пользователя (при использовании параметра</summary>
 /// <param name="uid">идентификатор пользователя, для которого необходимо получить список друзей</param>
 /// <param name="fields">перечисленные через запятую поля анкет, необходимые для получения</param>
 /// <param name="name_case">падеж для склонения имени и фамилии пользователя</param>
 /// <param name="count">количество друзей, которое нужно вернуть</param>
 /// <param name="offset">смещение, необходимое для выборки определенного подмножества друзей</param>
 /// <returns>Ответ сервера в XML или JSON формате.</returns>
 public VKResponseBase Get(int uid, ProfileFields fields, NameCase name_case, System.Int32? count = null, System.Int32? offset = null)
 {
     return get(uid, fields, name_case, count, offset, null, null);
 }
Example #17
0
		public async Task<EntityList<User>> FriendsGetAsync(
			 uint? userId = null,
			 uint? listId = null,
			 UserFields fields = UserFields.None,
			 UserSortOrder order = UserSortOrder.ById,
			 NameCase nameCase = NameCase.Nom,
			 uint offset = 0,
			 uint count = 100
			){
			return (await Executor.ExecAsync(
				_reqapi.FriendsGet(
											userId,
											listId,
											fields,
											order,
											nameCase,
											offset,
											count
									)
			)).Data.FirstOrDefault();
		}
Example #18
0
		public async Task<User[]> UsersGetAsync(
			 UserFields fields = UserFields.None,
			 NameCase nameCase = NameCase.Nom,
			params uint[] userIds 
			){
			return (await Executor.ExecAsync(
				_reqapi.UsersGet(
											fields,
											nameCase,
											userIds
									)
			)).Data;
		}
Example #19
0
        public ReadOnlyCollection <User> GetFollowers(long?userId = null, int?count = null, int?offset = null, ProfileFields fields = null, NameCase nameCase = null)
        {
            VkErrors.ThrowIfNumberIsNegative(() => userId);
            VkErrors.ThrowIfNumberIsNegative(() => count);
            VkErrors.ThrowIfNumberIsNegative(() => offset);

            var parameters = new VkParameters
            {
                { "user_id", userId },
                { "offset", offset },
                { "count", count },
                { "fields", fields },
                { "name_case", nameCase }
            };

            VkResponseArray response = _vk.Call("users.getFollowers", parameters);

            // проверка: возвращается массив объектов или только идентификаторы пользователей
            if (response.Count > 0 && response[0].ContainsKey("id"))
            {
                return(response.ToReadOnlyCollectionOf <User>(x => x));
            }

            return(response.ToReadOnlyCollectionOf(x => new User {
                Id = x
            }));
        }
Example #20
0
		public async Task<EntityList<User>> UsersGetFollowersAsync(
			 uint? userId = null,
			 UserFields fields = UserFields.None,
			 NameCase nameCase = NameCase.Nom,
			 uint offset = 0,
			 uint count = 100
			){
			return (await Executor.ExecAsync(
				_reqapi.UsersGetFollowers(
											userId,
											fields,
											nameCase,
											offset,
											count
									)
			)).Data.FirstOrDefault();
		}
Example #21
0
        /// <summary>
        /// Возвращает список профилей пользователей, которые могут быть друзьями текущего пользователя.
        /// </summary>
        /// <param name="filter">Типы предлагаемых друзей, которые нужно вернуть, перечисленные через запятую.</param>
        /// <param name="count">Количество рекомендаций, которое необходимо вернуть. положительное число, максимальное значение 500, по умолчанию 500 (положительное число, максимальное значение 500, по умолчанию 500).</param>
        /// <param name="offset">Смещение, необходимое для выбора определённого подмножества списка. положительное число (положительное число).</param>
        /// <param name="fields">Список дополнительных полей, которые необходимо вернуть. Доступные значения: nickname, screen_name, sex, bdate, city, country, timezone, photo_50, photo_100, photo_200_orig, has_mobile, contacts, education, online, counters, relation, last_seen, status, can_write_private_message, can_see_all_posts, can_post, universities список строк, разделенных через запятую(список строк, разделенных через запятую).</param>
        /// <param name="nameCase">Падеж для склонения имени и фамилии пользователя. Возможные значения: именительный – nom, родительный – gen, дательный – dat, винительный – acc, творительный – ins, предложный – abl. По умолчанию nom. строка (строка).</param>
        /// <returns>
        /// После успешного выполнения возвращает список объектов пользователей с дополнительным полем found_with для пользователей, найденных через импорт контактов. Для некоторых пользователей, которые были найдены давно поле found_with может отсутствовать.
        /// </returns>
        /// <remarks>
        /// Страница документации ВКонтакте <see href="http://vk.com/dev/friends.getSuggestions" />.
        /// </remarks>
        public VkCollection<User> GetSuggestions(FriendsFilter filter = null, long? count = null, long? offset = null, UsersFields fields = null, NameCase nameCase = null)
        {
            var parameters = new VkParameters {
                { "filter", filter },
                { "count", count },
                { "offset", offset },
                { "fields", fields },
                { "name_case", nameCase }
            };

            return _vk.Call("friends.getSuggestions", parameters).ToVkCollectionOf<User>(x => x);
        }
Example #22
0
		public async Task<EntityList<User>> FriendsGetSuggestionsAsync(
			 FriendSuggestionFilters filters = FriendSuggestionFilters.Everything,
			 UserFields fields = UserFields.None,
			 NameCase nameCase = NameCase.Nom,
			 uint offset = 0,
			 uint count = 100
			){
			return (await Executor.ExecAsync(
				_reqapi.FriendsGetSuggestions(
											filters,
											fields,
											nameCase,
											offset,
											count
									)
			)).Data.FirstOrDefault();
		}
Example #23
0
		public VKRequest<User> UsersGet(
			 UserFields fields = UserFields.None,
			 NameCase nameCase = NameCase.Nom,
			params uint[] userIds 
			){
			var req = new VKRequest<User>{
				MethodName = "users.get",
				Parameters = new Dictionary<string, string> {
					{ "fields", String.Join( ",", MiscTools.GetUserFields( fields ) ) },
			{ "name_case", nameCase.ToNClString() },
			{ "user_ids", (userIds??new uint[]{}).ToNCStringA() }
				}
			};
			if (IsLogged){
				req.Token = CurrentToken;
			}
			return req;
		}
 /// <summary>Возвращает список идентификаторов друзей пользователя или расширенную информацию о друзьях пользователя (при использовании параметра</summary>
 /// <param name="fields">перечисленные через запятую поля анкет, необходимые для получения</param>
 /// <param name="name_case">падеж для склонения имени и фамилии пользователя</param>
 /// <param name="lid">идентификатор списка друзей, полученный методом friends</param>
 /// <param name="count">количество друзей, которое нужно вернуть</param>
 /// <param name="offset">смещение, необходимое для выборки определенного подмножества друзей</param>
 /// <returns>Ответ сервера в XML или JSON формате.</returns>
 public VKResponseBase Get(ProfileFields fields, NameCase name_case, System.Int64? lid = null, System.Int32? count = null, System.Int32? offset = null)
 {
     return get(null, fields, name_case, count, offset, lid, null);
 }
Example #25
0
		public VKRequest<EntityList<User>> FriendsGet(
			 uint? userId = null,
			 uint? listId = null,
			 UserFields fields = UserFields.None,
			 UserSortOrder order = UserSortOrder.ById,
			 NameCase nameCase = NameCase.Nom,
			 uint offset = 0,
			 uint count = 100
			){
			var req = new VKRequest<EntityList<User>>{
				MethodName = "friends.get",
				Parameters = new Dictionary<string, string> {
					{ "user_id", MiscTools.NullableString(userId) },
			{ "list_id", MiscTools.NullableString(listId) },
			{ "fields", String.Join( ",", MiscTools.GetUserFields( fields ) ) },
			{ "order", order.ToNClString() },
			{ "name_case", nameCase.ToNClString() },
			{ "offset", offset.ToNCString() },
			{ "count", count.ToNCString() }
				}
			};
			if (IsLogged){
				req.Token = CurrentToken;
			}
			return req;
		}
Example #26
0
        public async Task<ReadOnlyCollection<User>> GetAsync([NotNull] IEnumerable<string> screenNames, ProfileFields fields = null, NameCase nameCase = null)
        {
            if (screenNames == null)
                throw new ArgumentNullException("screenNames");

            var parameters = new VkParameters
                {
                    { "user_ids", screenNames }, 
                    { "fields", fields }, 
                    { "name_case", nameCase }
                };

            VkResponseArray response = await _vk.CallAsync("users.get", parameters);
            return response.ToReadOnlyCollectionOf<User>(x => x);
        }
Example #27
0
		public VKRequest<EntityList<User>> FriendsGetSuggestions(
			 FriendSuggestionFilters filters = FriendSuggestionFilters.Everything,
			 UserFields fields = UserFields.None,
			 NameCase nameCase = NameCase.Nom,
			 uint offset = 0,
			 uint count = 100
			){
			var req = new VKRequest<EntityList<User>>{
				MethodName = "friends.getSuggestions",
				Parameters = new Dictionary<string, string> {
					{ "filters", String.Join( ",", MiscTools.GetFilterFields( filters ) ) },
			{ "fields", String.Join( ",", MiscTools.GetUserFields( fields ) ) },
			{ "name_case", nameCase.ToNClString() },
			{ "offset", offset.ToNCString() },
			{ "count", count.ToNCString() }
				}
			};
				req.Token = CurrentToken;
			
			return req;
		}
Example #28
0
        public ReadOnlyCollection<User> GetFollowers(long? userId = null, int? count = null, int? offset = null, ProfileFields fields = null, NameCase nameCase = null)
        {
            VkErrors.ThrowIfNumberIsNegative(() => userId);
            VkErrors.ThrowIfNumberIsNegative(() => count);
            VkErrors.ThrowIfNumberIsNegative(() => offset);

            var parameters = new VkParameters
                {
                    {"user_id", userId},
                    {"offset", offset},
                    {"count", count},
                    {"fields", fields},
                    {"name_case", nameCase}
                };

            VkResponseArray response = _vk.Call("users.getFollowers", parameters);

            // проверка: возвращается массив объектов или только идентификаторы пользователей
            if (response.Count > 0 && response[0].ContainsKey("id"))
            {
                return response.ToReadOnlyCollectionOf<User>(x => x);
            }

            return response.ToReadOnlyCollectionOf(x => new User{Id = x});
        }
Example #29
0
		/// <summary>
		/// Gets the chat.
		/// </summary>
		/// <param name="chatId">The chat identifier.</param>
		/// <param name="fields">The fields.</param>
		/// <param name="nameCase">The name case.</param>
		/// <returns></returns>
		public Chat GetChat(long chatId, ProfileFields fields = null, NameCase nameCase = null)
		{
			return GetChat(new[] { chatId }, fields, nameCase).FirstOrDefault();
		}
Example #30
0
 public ReadOnlyCollection<User> GetInvitedUsers(long groupId, out int userCount, long? offset = null, long? count = null, UsersFields fields = null, NameCase nameCase = null)
 {
     VkErrors.ThrowIfNumberIsNegative(() => groupId);
     var parameters = new VkParameters
     {
         { "group_id", groupId },
         { "offset", offset },
         { "count", count },
         { "fields", fields },
         { "name_case", nameCase }
     };
     var response = _vk.Call("groups.getInvitedUsers", parameters);
     userCount = response["count"];
     return response["items"].ToReadOnlyCollectionOf<User>(x => x);
 }
Example #31
0
		public ReadOnlyCollection<Chat> GetChat(IEnumerable<long> chatIds, ProfileFields fields = null, NameCase nameCase = null)
		{
			var isNoEmpty = chatIds == null || !chatIds.Any();
			if (isNoEmpty)
			{
				throw new ArgumentException("At least one chat ID must be defined", "chatIds");
			}
			var parameters = new VkParameters { { "fields", fields }, { "name_case", nameCase } };
			if (chatIds.Count() > 1)
			{
				parameters.Add("chat_ids", chatIds);
			} else
			{
				parameters.Add("chat_id", chatIds.ElementAt(0));
			}
			var response = _vk.Call("messages.getChat", parameters);

			if (chatIds.Count() > 1)
			{
				return response.ToReadOnlyCollectionOf<Chat>(c => c);
			}
			return new ReadOnlyCollection<Chat>(new List<Chat> { response });
		}
Example #32
0
 public ReadOnlyCollection<User> GetInvitedUsers(ulong groupId, out int userCount, uint offset = 0, uint count = 20, UsersFields fields = null, NameCase nameCase = null)
 {
     var parameters = new VkParameters
     {
         { "group_id", groupId },
         { "offset", offset },
         { "count", count },
         { "fields", fields },
         { "name_case", nameCase }
     };
     var response = _vk.Call("groups.getInvitedUsers", parameters);
     userCount = response["count"];
     return response["items"].ToReadOnlyCollectionOf<User>(x => x);
 }
Example #33
0
        public ReadOnlyCollection <User> Get([NotNull] IEnumerable <long> userIds, ProfileFields fields = null, NameCase nameCase = null)
        {
            if (userIds == null)
            {
                throw new ArgumentNullException("userIds");
            }

            var parameters = new VkParameters {
                { "fields", fields }, { "name_case", nameCase }
            };

            parameters.Add("user_ids", userIds);

            VkResponseArray response = _vk.Call("users.get", parameters);

            return(response.ToReadOnlyCollectionOf <User>(x => x));
        }