Ejemplo n.º 1
0
        /// <summary>
        /// Возвращает коллекцию базовых профилей запрошенных пользователей.
        /// </summary>
        /// <param name="callback">Метод, который будет вызван по завершении операции.
        /// Параметр является результатом запроса.</param>
        /// <param name="userIDs">Коллекция идентификаторов пользователей,
        /// профили которых требуется получить.</param>
        /// <param name="nameCase">Падеж имени пользователя.</param>
        /// <exception cref="ArgumentOutOfRangeException"></exception>
        public void GetBaseUsers(Action <VKResponse <List <VKProfileBase> > > callback,
                                 List <long> userIDs = null, VKUserNameCase nameCase = VKUserNameCase.nom)
        {
            if (userIDs != null && (userIDs.Count == 0 || userIDs.Count() > 100))
            {
                throw new ArgumentOutOfRangeException("userIDs",
                                                      "Коллекция идентификаторов должна содержать от одного до ста элементов. " +
                                                      "Если вам требуется получить профиль текущего пользователя, используйте null.");
            }

            var parameters = new Dictionary <string, string>();

            parameters["fields"] = "status,online,online_mobile,photo_50,photo_100,photo_200";
            if (nameCase != VKUserNameCase.nom)
            {
                parameters["name_case"] = nameCase.ToString();
            }
            if (userIDs != null)
            {
                if (userIDs.Count == 1)
                {
                    parameters["user_ids"] = userIDs.First().ToString();
                }
                else
                {
                    parameters["user_ids"] = String.Join(",", userIDs);
                }
            }

            VKHelper.GetResponse <List <VKProfileBase> >(VKMethodsConstants.UsersGet, parameters, callback);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Возвращает коллекцию базовых профилей запрошенных пользователей.
        /// </summary>
        /// <param name="callback">Метод, который будет вызван по завершении операции.
        /// Параметр является результатом запроса.</param>
        /// <param name="userIDs">Коллекция идентификаторов пользователей,
        /// профили которых требуется получить.</param>
        /// <param name="nameCase">Падеж имени пользователя.</param>
        /// <exception cref="ArgumentOutOfRangeException"></exception>
        public void GetExtendedUsers(Action <VKResponse <List <VKProfileExtended> > > callback,
                                     List <long> userIDs = null, List <VKUserFields> fields = null, VKUserNameCase nameCase = VKUserNameCase.nom)
        {
            if (userIDs != null && (userIDs.Count == 0 || userIDs.Count() > 100))
            {
                throw new ArgumentOutOfRangeException("userIDs",
                                                      "Коллекция идентификаторов должна содержать от одного до ста элементов. " +
                                                      "Если вам требуется получить профиль текущего пользователя, используйте null.");
            }
            if (fields != null && fields.Count() == 0)
            {
                throw new ArgumentOutOfRangeException("fields",
                                                      "Коллекция полей должна содержать как минимум один элемент. " +
                                                      "Если вам требуется получить все данные, используйте null.");
            }

            var parameters = new Dictionary <string, string>();

            if (nameCase != VKUserNameCase.nom)
            {
                parameters["name_case"] = nameCase.ToString();
            }
            if (userIDs != null)
            {
                if (userIDs.Count == 1)
                {
                    parameters["user_ids"] = userIDs.First().ToString();
                }
                else
                {
                    parameters["user_ids"] = String.Join(",", userIDs);
                }
            }
            if (fields == null)
            {
                parameters["fields"] = "sex,bdate,city,country,photo_50,photo_100"
                                       + ",photo_200_orig,photo_200,photo_400_orig,photo_max,photo_max_orig,online,online_mobile"
                                       + ",has_mobile,site,education,universities,schools,can_post,can_see_all_posts"
                                       + ",can_see_audio,can_write_private_message,status,relation,occupation,activities"
                                       + ",interests,music,movies,tv,books,games,about,quotes";
            }
            else
            {
                var builder = new StringBuilder();
                for (int i = 0; i < fields.Count; i++)
                {
                    builder.Append(fields[i] + ",");
                }
                parameters["fields"] = builder.ToString();
            }

            VKHelper.GetResponse <List <VKProfileExtended> >(VKMethodsConstants.UsersGet, parameters, callback);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Получить подписчиков пользователя.
        /// </summary>
        /// <param name="callback">Метод, который будет вызван по завершении операции.
        /// Параметр является результатом запроса.</param>
        /// <param name="userID">Идентификатор пользователя.</param>
        /// <param name="count">Количество пользователей, которое требуется
        /// вернуть (не более 1000).</param>
        /// <param name="offset">Смещение относительно начала списка
        /// (не более 1000).</param>
        /// <param name="nameCase">Падеж имени пользователя.</param>
        /// <exception cref="ArgumentOutOfRangeException"></exception>
        public void GetFollowers(Action <VKResponse <VKCountedItemsObject <VKProfileBase> > > callback,
                                 long userID = 0, int count = 100, int offset = 0, VKUserNameCase nameCase = VKUserNameCase.nom)
        {
            if (count <= 0 || count > 1000)
            {
                throw new ArgumentOutOfRangeException("count",
                                                      "Количество элементов должно быть больше нуля, но меньше 1000.");
            }
            if (offset < 0 || offset > 1000)
            {
                throw new ArgumentOutOfRangeException("offset",
                                                      "Смещение должно быть не менее нуля, но не более 1000.");
            }
            if (userID < 0)
            {
                throw new ArgumentOutOfRangeException("userID",
                                                      "Идентификатор пользователя не может быть отрицательным.");
            }

            var parameters = new Dictionary <string, string>();

            if (userID > 0)
            {
                parameters["user_id"] = userID.ToString();
            }
            if (count != 100)
            {
                parameters["count"] = count.ToString();
            }
            if (offset > 0)
            {
                parameters["offset"] = offset.ToString();
            }
            if (nameCase != VKUserNameCase.nom)
            {
                parameters["name_case"] = nameCase.ToString();
            }

            VKHelper.GetResponse <VKCountedItemsObject <VKProfileBase> >(VKMethodsConstants.UserGetFollowers,
                                                                         parameters, callback);
        }