public Video Save(string name = null, string description = null, bool isPrivate = false, bool isPostToWall = false, string link = null, long?groupId = null, long?albumId = null, bool isRepeat = false) { var parameters = new VideoSaveParams { Name = name, Description = description, IsPrivate = isPrivate, Wallpost = isPostToWall, Link = link, GroupId = groupId, AlbumId = albumId, Repeat = isRepeat }; return(Save(parameters)); }
/// <inheritdoc /> public async Task <Video> SaveAsync(VideoSaveParams @params) { return(await TypeHelper.TryInvokeMethodAsync(() => _vk.Video.Save(@params))); }
/// <inheritdoc /> public Task <Video> SaveAsync(VideoSaveParams @params) { return(TypeHelper.TryInvokeMethodAsync(func: () => _vk.Video.Save(@params: @params))); }
/// <summary> /// Возвращает адрес сервера (необходимый для загрузки) и данные видеозаписи. /// </summary> /// <param name="params"> Параметры запроса. </param> /// <returns> /// Возвращает объект, который имеет поля upload_url, video_id, title, description, /// owner_id. /// Метод может быть вызван не более 5000 раз в сутки для одного сервиса. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/video.save /// </remarks> public Video Save(VideoSaveParams @params) { return(_vk.Call(methodName: "video.save", parameters: @params)); }
/// <summary> /// Возвращает адрес сервера (необходимый для загрузки) и данные видеозаписи. /// </summary> /// <param name="params">Параметры запроса.</param> /// <returns> /// Возвращает объект, который имеет поля upload_url, video_id, title, description, owner_id. /// Метод может быть вызван не более 5000 раз в сутки для одного сервиса. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/video.save /// </remarks> public Video Save(VideoSaveParams @params) { return(_vk.Call("video.save", @params)); }
/// <summary> /// Returns a server address (required for upload) and video data. /// </summary> /// <param name="methodParams">A <see cref="VideoSaveParams"/> object with the params.</param> /// <returns>Returns a <see cref="VideoServerInfo"/> object containing upload server data.</returns> public async Task<Response<VideoServerInfo>> Save(VideoSaveParams methodParams) => await Request<VideoServerInfo>("save", methodParams);
private async Task<object> UploadVideo(object videoObj, string fileName, VideoSaveParams saveParams, bool byLink) { var uplServerResp = await Save(saveParams); if (uplServerResp.IsError && !API.ThrowExceptionOnResponseError) { throw new InTouchResponseErrorException(uplServerResp.Error.Message, uplServerResp.Error); } if (byLink) { var uplRespRawJson = await new HttpClient().GetStringAsync(uplServerResp.Data.UploadUrl); var resp = API.ParseUploadServerResponse<bool>(uplRespRawJson, "response"); return Tuple.Create(resp, uplServerResp.Data); } else { var uplRespRawJson = await API.UploadFile(uplServerResp.Data.UploadUrl, new List<Tuple<string, byte[], string>> { {"video_file", (byte[]) videoObj, fileName} }); var resp = API.ParseUploadServerResponse<VideoUploadResponse>(uplRespRawJson); return resp.GetVideo(uplServerResp.Data); } }
/// <summary> /// Adds video by given external link. /// </summary> /// <param name="saveParams">A <see cref="VideoSaveParams"/> object with the params.</param> /// <exception cref="ArgumentNullException">Thrown when a <c>saveParams</c> is null.</exception> /// <exception cref="NullReferenceException">Thrown when a <see cref="VideoSaveParams.Link"/> is null.</exception> /// <exception cref="InTouchException">Thrown when an exception has occurred while uploading the file.</exception> /// <returns>Returns a <see cref="VideoServerInfo"/> object containing upload server data.</returns> public async Task<Tuple<bool, VideoServerInfo>> UploadVideo(VideoSaveParams saveParams) { if (saveParams == null) { throw new ArgumentNullException(nameof(saveParams)); } if (string.IsNullOrEmpty(saveParams.Link)) { throw new NullReferenceException("Video link cannot be null or empty."); } try { var res = await UploadVideo(null, null, saveParams, true); return (Tuple<bool, VideoServerInfo>)res; } catch (Exception ex) { throw new InTouchException("An exception has occurred while adding video by link.", ex); } }
/// <summary> /// Uploads the video. /// </summary> /// <param name="videoData">Video data.</param> /// <param name="fileName">Video file name.</param> /// <param name="saveParams">A <see cref="VideoSaveParams"/> object with the params.</param> /// <exception cref="ArgumentNullException">Thrown when a <c>videoData</c> is null.</exception> /// <exception cref="ArgumentNullException">Thrown when a <c>fileName</c> is null.</exception> /// <exception cref="InTouchException">Thrown when an exception has occurred while uploading the file.</exception> /// <returns>Returns a <see cref="VideoServerInfo"/> object containing upload server data.</returns> public async Task<Video> UploadVideo(byte[] videoData, string fileName, VideoSaveParams saveParams = null) { if (videoData == null) { throw new ArgumentNullException(nameof(videoData)); } if (string.IsNullOrEmpty(fileName)) { throw new ArgumentNullException(nameof(fileName)); } try { var res = await UploadVideo(videoData, fileName, saveParams, false); return (Video)res; } catch (Exception ex) { throw new InTouchException("An exception has occurred while uploading video file.", ex); } }
/// <summary> /// Возвращает адрес сервера (необходимый для загрузки) и данные видеозаписи. /// </summary> /// <param name="params">Параметры запроса.</param> /// <returns> /// Возвращает объект, который имеет поля upload_url, video_id, title, description, owner_id. /// Метод может быть вызван не более 5000 раз в сутки для одного сервиса. /// </returns> /// <remarks> /// Страница документации ВКонтакте <see href="http://vk.com/dev/video.save" />. /// </remarks> public Video Save(VideoSaveParams @params) { return _vk.Call("video.save", @params); }