Ejemplo n.º 1
0
        /// <summary>
        /// Cоздает новый комментарий к видеозаписи.
        /// </summary>
        /// <param name="params">Параметры запроса.</param>
        /// <returns>
        /// После успешного выполнения возвращает идентификатор созданного комментария.
        /// </returns>
        /// <remarks>
        /// Страница документации ВКонтакте http://vk.com/dev/video.createComment
        /// </remarks>
        public long CreateComment(VideoCreateCommentParams @params)
        {
            VkErrors.ThrowIfNullOrEmpty(() => @params.Message);
            VkErrors.ThrowIfNumberIsNegative(() => @params.VideoId);

            return(_vk.Call("video.createComment", @params));
        }
Ejemplo n.º 2
0
        public ReadOnlyCollection <Document> Save(string file
                                                  , string title
                                                  , string tags       = null
                                                  , long?captchaSid   = null
                                                  , string captchaKey = null)
        {
            var file1 = file;

            VkErrors.ThrowIfNullOrEmpty(expr: () => file1);
            VkErrors.ThrowIfNullOrEmpty(expr: () => title);
            var responseJson = JObject.Parse(json: file);

            file = responseJson[propertyName : "file"].ToString();

            var parameters = new VkParameters
            {
                { "file", file }
                , { "title", title }
                , { "tags", tags }
                , { "captcha_sid", captchaSid }
                , { "captcha_key", captchaKey }
            };

            var response = _vk.Call(methodName: "docs.save", parameters: parameters);

            return(response.ToReadOnlyCollectionOf <Document>(selector: r => r));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Cоздает новый комментарий к видеозаписи.
        /// </summary>
        /// <param name="params"> Параметры запроса. </param>
        /// <returns>
        /// После успешного выполнения возвращает идентификатор созданного комментария.
        /// </returns>
        /// <remarks>
        /// Страница документации ВКонтакте http://vk.com/dev/video.createComment
        /// </remarks>
        public long CreateComment(VideoCreateCommentParams @params)
        {
            VkErrors.ThrowIfNullOrEmpty(expr: () => @params.Message);
            VkErrors.ThrowIfNumberIsNegative(expr: () => @params.VideoId);

            return(_vk.Call(methodName: "video.createComment", parameters: @params));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Возвращает список видеозаписей в соответствии с заданным критерием поиска.
        /// </summary>
        /// <param name="params"> Параметры запроса. </param>
        /// <returns>
        /// После успешного выполнения возвращает список объектов видеозаписей.
        /// Если в Вашем приложении используется  прямая авторизация, возвращается
        /// дополнительное поле files, содержащее ссылку
        /// на файл с видео (если ролик размещен на сервере ВКонтакте) или ссылку на
        /// внешний ресурс (если ролик встроен с
        /// какого-либо видеохостинга).
        /// </returns>
        /// <remarks>
        /// Страница документации ВКонтакте http://vk.com/dev/video.search
        /// </remarks>
        public VkCollection <Video> Search(VideoSearchParams @params)
        {
            VkErrors.ThrowIfNullOrEmpty(expr: () => @params.Query);
            VkErrors.ThrowIfNumberIsNegative(expr: () => @params.Count);
            VkErrors.ThrowIfNumberIsNegative(expr: () => @params.Offset);

            return(_vk.Call(methodName: "video.search", parameters: @params).ToVkCollectionOf <Video>(selector: x => x));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Возвращает список видеозаписей в соответствии с заданным критерием поиска.
        /// </summary>
        /// <param name="params">Параметры запроса.</param>
        /// <returns>
        /// После успешного выполнения возвращает список объектов видеозаписей.
        /// Если в Вашем приложении используется  прямая авторизация, возвращается дополнительное поле files, содержащее ссылку на файл с видео (если ролик размещен на сервере ВКонтакте) или ссылку на внешний ресурс (если ролик встроен с какого-либо видеохостинга).
        /// </returns>
        /// <remarks>
        /// Страница документации ВКонтакте http://vk.com/dev/video.search
        /// </remarks>
        public VkCollection <Video> Search(VideoSearchParams @params)
        {
            VkErrors.ThrowIfNullOrEmpty(() => @params.Query);
            VkErrors.ThrowIfNumberIsNegative(() => @params.Count);
            VkErrors.ThrowIfNumberIsNegative(() => @params.Offset);

            return(_vk.Call("video.search", @params).ToVkCollectionOf <Video>(x => x));
        }
Ejemplo n.º 6
0
        public User Get([NotNull] string screenName, ProfileFields fields = null, NameCase nameCase = null, bool skipAuthorization = false)
        {
            VkErrors.ThrowIfNullOrEmpty(() => screenName);

            var users = Get(new[] { screenName }, fields, nameCase, skipAuthorization);

            return(users.Count > 0 ? users[0] : null);
        }
Ejemplo n.º 7
0
        public void ThrowIfNullOrEmpty_EmptyString_ThrowException()
        {
            string param = string.Empty;

            var ex = ExceptionAssert.Throws <ArgumentNullException>(() => VkErrors.ThrowIfNullOrEmpty(() => param));

            ex.Message.ShouldStartsWith("Value cannot be null").ShouldContains("param");
        }
Ejemplo n.º 8
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);
        }
Ejemplo n.º 9
0
        public void ThrowIfNullOrEmpty_EmptyString_ThrowException()
        {
            string param = string.Empty;

            var ex = This.Action(() => VkErrors.ThrowIfNullOrEmpty(() => param)).Throws <ArgumentNullException>();

            ex.Message.ShouldStartsWith("Значение не может быть неопределенным").ShouldContains("param");
        }
Ejemplo n.º 10
0
        public void ThrowIfNullOrEmpty_EmptyString_ThrowException()
        {
            // TODO На MONO код падает
            var param = "";
            var ex    = Assert.Throws <ArgumentNullException>(() => VkErrors.ThrowIfNullOrEmpty(() => param));

            StringAssert.StartsWith("Значение не может быть неопределенным", ex.Message);
            StringAssert.Contains("param", ex.Message);
        }
        public bool SetNameInMenu([NotNull] string name)
        {
            VkErrors.ThrowIfNullOrEmpty(() => name);
            var parameters = new VkParameters {
                { "name", name }
            };

            return(_vk.Call("account.setNameInMenu", parameters));
        }
Ejemplo n.º 12
0
        public void ThrowIfNullOrEmpty_EmptyString_ThrowException()
        {
            // TODO На MONO код падает
            var param = "";
            var ex    = Assert.Throws <ArgumentNullException>(() => VkErrors.ThrowIfNullOrEmpty(() => param));

            StringAssert.StartsWith("Параметр не должен быть равен null", ex.Message);
            StringAssert.Contains("param", ex.Message);
        }
Ejemplo n.º 13
0
        public LinkAccessType CheckLink([NotNull] string url)
        {
            VkErrors.ThrowIfNullOrEmpty(() => url);

            var parameters = new VkParameters {
                { "url", url }
            };

            return(_vk.Call("utils.checkLink", parameters, true));
        }
Ejemplo n.º 14
0
        public VkObject ResolveScreenName(string screenName)
        {
            VkErrors.ThrowIfNullOrEmpty(() => screenName);

            var parameters = new VkParameters {
                { "screen_name", screenName }
            };

            return(_vk.Call("utils.resolveScreenName", parameters, true));
        }
Ejemplo n.º 15
0
        public VkObject ResolveScreenName(string screenName)
        {
            VkErrors.ThrowIfNullOrEmpty(expr: () => screenName);

            var parameters = new VkParameters {
                { "screen_name", screenName }
            };

            return(_vk.Call(methodName: "utils.resolveScreenName", parameters: parameters, skipAuthorization: true));
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Устанавливает короткое название приложения (до 17 символов), которое выводится пользователю в левом меню.
        /// </summary>
        /// <param name="userId">Идентификатор пользователя. положительное число, по умолчанию идентификатор текущего пользователя, обязательный параметр (Положительное число, по умолчанию идентификатор текущего пользователя, обязательный параметр).</param>
        /// <param name="name">Короткое название приложения. строка (Строка).</param>
        /// <returns>
        /// Возвращает 1 в случае успешной установки короткого названия.
        /// Если пользователь не установил приложение в левое меню, метод вернет ошибку 148 (Access to the menu of the user denied). Избежать этой ошибки можно с помощью метода account.getAppPermissions.
        /// </returns>
        /// <remarks>
        /// Страница документации ВКонтакте http://vk.com/dev/account.setNameInMenu
        /// </remarks>
        public bool SetNameInMenu(string name, long?userId = null)
        {
            VkErrors.ThrowIfNullOrEmpty(() => name);
            var parameters = new VkParameters
            {
                { "name", name },
                { "user_id", userId }
            };

            return(_vk.Call("account.setNameInMenu", parameters));
        }
        public bool UnregisterDevice([NotNull] string token)
        {
            VkErrors.ThrowIfNullOrEmpty(() => token);

            var parameters = new VkParameters
            {
                { "token", token }
            };

            return(_vk.Call("account.unregisterDevice", parameters));
        }
Ejemplo n.º 18
0
        /// <summary>
        /// Отписывает устройство от Push уведомлений.
        /// </summary>
        /// <param name="deviceId">
        /// Уникальный идентификатор устройства. строка, доступен начиная с версии 5.31
        /// (Строка, доступен
        /// начиная с версии 5.31).
        /// </param>
        /// <param name="sandbox">
        /// Флаг предназначен для iOS устройств. 1 — отписать устройство, использующего
        /// sandbox сервер для
        /// отправки push-уведомлений, 0 — отписать устройство, не использующее sandbox
        /// сервер флаг, может принимать значения 1
        /// или 0, по умолчанию 0 (Флаг, может принимать значения 1 или 0, по умолчанию 0).
        /// </param>
        /// <returns>
        /// Возвращает <c> true </c> в случае успешного выполнения метода.
        /// </returns>
        /// <remarks>
        /// Страница документации ВКонтакте http://vk.com/dev/account.unregisterDevice
        /// </remarks>
        public bool UnregisterDevice(string deviceId, bool?sandbox = null)
        {
            VkErrors.ThrowIfNullOrEmpty(expr: () => deviceId);

            var parameters = new VkParameters
            {
                { "device_id", deviceId }
                , { "sandbox", sandbox }
            };

            return(_vk.Call(methodName: "account.unregisterDevice", parameters: parameters));
        }
Ejemplo n.º 19
0
        public ReadOnlyCollection<Group> Search([NotNull] string query, out int totalCount, int? offset = null, int? count = null)
        {
            VkErrors.ThrowIfNullOrEmpty(() => query);
            
            var parameters = new VkParameters { { "q", query }, { "offset", offset }, { "count", count } };

            VkResponseArray response = _vk.Call("groups.search", parameters);

            totalCount = response[0];

            return response.Skip(1).ToReadOnlyCollectionOf<Group>(r => r);
        }
Ejemplo n.º 20
0
        /// <inheritdoc />
        public RepostResult Repost(string @object, string message, long?groupId, bool markAsAds)
        {
            VkErrors.ThrowIfNullOrEmpty(() => @object);
            VkErrors.ThrowIfNumberIsNegative(() => groupId);
            var parameters = new VkParameters {
                { "object", @object },
                { "message", message },
                { "group_id", groupId },
                { "mark_as_ads", markAsAds }
            };

            return(_vk.Call("wall.repost", parameters));
        }
Ejemplo n.º 21
0
        public bool EditAlbum(string title, long albumId, long?groupId = null)
        {
            VkErrors.ThrowIfNullOrEmpty(() => title);

            var parameters = new VkParameters
            {
                { "title", title },
                { "group_id", groupId },
                { "album_id", albumId }
            };

            return(_vk.Call("audio.editAlbum", parameters));
        }
Ejemplo n.º 22
0
		/// <summary>
		/// Копирует объект на стену пользователя или сообщества.
		/// </summary>
		/// <param name="object">Строковый идентификатор объекта, который необходимо разместить на стене, например, wall66748_3675 или wall-1_340364. строка, обязательный параметр (Строка, обязательный параметр).</param>
		/// <param name="message">Сопроводительный текст, который будет добавлен к записи с объектом. строка (Строка).</param>
		/// <param name="groupId">Идентификатор сообщества, на стене которого будет размещена запись с объектом. Если не указан, запись будет размещена на стене текущего пользователя. положительное число (Положительное число).</param>
		/// <param name="ref">Строка (Строка).</param>
		/// <returns>
		/// После успешного выполнения возвращает объект со следующими полями:
		///
		/// success
		/// post_id — идентификатор созданной записи;
		/// reposts_count — количество репостов объекта с учетом осуществленного;
		/// likes_count — число отметок «Мне нравится» у объекта.
		/// </returns>
		/// <remarks>
		/// Страница документации ВКонтакте http://vk.com/dev/wall.repost
		/// </remarks>
		public RepostResult Repost(string @object, string message, long? groupId, string @ref)
		{
			VkErrors.ThrowIfNullOrEmpty(() => @object);
			VkErrors.ThrowIfNumberIsNegative(() => groupId);
			var parameters = new VkParameters {
				{ "object", @object },
				{ "message", message },
				{ "group_id", groupId },
				{ "ref", @ref }
			};

			return _vk.Call("wall.repost", parameters);
		}
Ejemplo n.º 23
0
        public bool RegisterDevice([NotNull] string token, string deviceModel, string systemVersion, bool?noText = null, SubscribeFilter subscribe = null)
        {
            VkErrors.ThrowIfNullOrEmpty(() => token);

            var parameters = new AccountRegisterDeviceParams
            {
                Token         = token,
                DeviceModel   = deviceModel,
                SystemVersion = systemVersion
            };

            return(RegisterDevice(parameters));
        }
Ejemplo n.º 24
0
        /// <summary>
        /// Отключает push-уведомления на заданный промежуток времени.
        /// </summary>
        /// <param name="deviceId"> Идентификатор устройства для сервиса push уведомлений. </param>
        /// <param name="time">
        /// Время в секундах на которое требуется отключить уведомления. (-1 - отключить
        /// навсегда)
        /// </param>
        /// <param name="peerId">
        /// Идентификатор чата, для которого следует отключить
        /// уведомления.
        /// </param>
        /// <param name="sound">
        /// 1 - включить звук в данном диалоге, 0 - отключить звук (параметр работает
        /// только если указан в
        /// peer_id передан идентификатор групповой беседы или пользователя)
        /// </param>
        /// <returns>
        /// Возвращает результат выполнения метода.
        /// </returns>
        /// <remarks>
        /// Страница документации ВКонтакте http://vk.com/dev/account.setSilenceMode
        /// </remarks>
        public bool SetSilenceMode(string deviceId, int?time = null, int?peerId = null, bool?sound = null)
        {
            VkErrors.ThrowIfNullOrEmpty(expr: () => deviceId);

            var parameters = new VkParameters
            {
                { "device_id", deviceId }
                , { "time", time }
                , { "peer_id", peerId }
                , { "sound", sound }
            };

            return(_vk.Call(methodName: "account.setSilenceMode", parameters: parameters));
        }
Ejemplo n.º 25
0
        public long AddAlbum(string title, long?groupId = null)
        {
            VkErrors.ThrowIfNullOrEmpty(() => title);
            VkErrors.ThrowIfNumberIsNegative(() => groupId);

            var parameters = new VkParameters {
                { "group_id", groupId },
                { "title", title }
            };

            var response = _vk.Call("audio.addAlbum", parameters);

            return(response["album_id"]);
        }
Ejemplo n.º 26
0
        public long AddList(string name, IEnumerable <long> userIds)
        {
            VkErrors.ThrowIfNullOrEmpty(() => name);

            var parameters = new VkParameters
            {
                { "name", name },
                { "user_ids", userIds }
            };

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

            return(response["list_id"]);
        }
Ejemplo n.º 27
0
        /// <summary>
        /// Изменяет текст комментария к видеозаписи.
        /// </summary>
        /// <param name="ownerId">Идентификатор пользователя или сообщества, которому принадлежит видеозапись. Обратите внимание, идентификатор сообщества в параметре owner_id необходимо указывать со знаком "-" — например, owner_id=-1 соответствует идентификатору сообщества ВКонтакте API (club1)  целое число, по умолчанию идентификатор текущего пользователя (Целое число, по умолчанию идентификатор текущего пользователя).</param>
        /// <param name="commentId">Идентификатор комментария. целое число, обязательный параметр (Целое число, обязательный параметр).</param>
        /// <param name="message">Новый текст комментария (является обязательным, если не задан параметр attachments). строка (Строка).</param>
        /// <param name="attachments">Новый список объектов, приложенных к комментарию и разделённых символом ",". Поле attachments представляется в формате:
        /// &lt;type&gt;&lt;owner_id&gt;_&lt;media_id&gt;,&lt;type&gt;&lt;owner_id&gt;_&lt;media_id&gt;
        /// &lt;type&gt; — тип медиа-вложения:
        /// photo — фотография
        /// video — видеозапись
        /// audio — аудиозапись
        /// doc — документ
        /// &lt;owner_id&gt; — идентификатор владельца медиа-вложения
        /// &lt;media_id&gt; — идентификатор медиа-вложения.
        ///
        /// Например:
        /// photo100172_166443618,photo66748_265827614
        /// Параметр является обязательным, если не задан параметр message. список строк, разделенных через запятую (Список строк, разделенных через запятую).</param>
        /// <returns>
        /// После успешного выполнения возвращает <c>true</c>.
        /// </returns>
        /// <remarks>
        /// Страница документации ВКонтакте http://vk.com/dev/video.editComment
        /// </remarks>
        public bool EditComment(long commentId, string message, long?ownerId = null, IEnumerable <MediaAttachment> attachments = null)
        {
            VkErrors.ThrowIfNullOrEmpty(() => message);
            VkErrors.ThrowIfNumberIsNegative(() => commentId);

            var parameters = new VkParameters {
                { "owner_id", ownerId },
                { "comment_id", commentId },
                { "message", message },
                { "attachments", attachments }
            };

            return(_vk.Call("video.editComment", parameters));
        }
Ejemplo n.º 28
0
        public ReadOnlyCollection <long> SetBroadcast(string audio, IEnumerable <long> targetIds)
        {
            VkErrors.ThrowIfNullOrEmpty(() => audio);

            var parameters = new VkParameters
            {
                { "audio", audio },
                { "target_ids", targetIds }
            };

            VkResponseArray response = _vk.Call("audio.setBroadcast", parameters);

            return(response.ToReadOnlyCollectionOf <long>(x => x));
        }
        public bool RegisterDevice([NotNull] string token, string deviceModel, string systemVersion, bool?noText = null, SubscribeFilter subscribe = null)
        {
            VkErrors.ThrowIfNullOrEmpty(() => token);

            var parameters = new VkParameters
            {
                { "token", token },
                { "device_model", deviceModel },
                { "system_version", systemVersion },
                { "no_text", noText },
                { "subscribe", subscribe }
            };

            return(_vk.Call("account.registerDevice", parameters));
        }
Ejemplo n.º 30
0
        /// <summary>
        /// Редактирует название альбома видеозаписей.
        /// </summary>
        /// <param name="groupId">Идентификатор сообщества (если нужно отредактировать альбом, принадлежащий сообществу). положительное число (Положительное число).</param>
        /// <param name="albumId">Идентификатор альбома. положительное число, обязательный параметр (Положительное число, обязательный параметр).</param>
        /// <param name="title">Новое название для альбома. строка, обязательный параметр (Строка, обязательный параметр).</param>
        /// <param name="privacy">Уровень доступа к альбому в специальном формате.
        /// Приватность доступна для альбомов с видео в профиле пользователя. целое число (Целое число).</param>
        /// <returns>
        /// После успешного выполнения возвращает <c>true</c>.
        /// </returns>
        /// <remarks>
        /// Страница документации ВКонтакте http://vk.com/dev/video.editAlbum
        /// </remarks>
        public bool EditAlbum(long albumId, string title, long?groupId = null, Privacy privacy = null)
        {
            VkErrors.ThrowIfNullOrEmpty(() => title);
            VkErrors.ThrowIfNumberIsNegative(() => albumId);
            VkErrors.ThrowIfNumberIsNegative(() => groupId);

            var parameters = new VkParameters {
                { "group_id", groupId },
                { "album_id", albumId },
                { "title", title },
                { "privacy", privacy }
            };

            return(_vk.Call("video.editAlbum", parameters));
        }