private async Task<Operation> CreateOperationAsyncInternal(object video, VideoOperationSettings videoOperationSettings) { var url = string.Format("{0}/{1}", ServiceHost, videoOperationSettings.MethodName); var arguments = videoOperationSettings.GetQueryParameters().ToArray(); if (arguments.Length != 0) { var queryToAppend = string.Join("&", arguments.Select(p => WebUtility.UrlEncode(p.Key) + "=" + WebUtility.UrlEncode(p.Value))); var uriBuilder = new UriBuilder(url); if (uriBuilder.Query != null && uriBuilder.Query.Length > 1) { uriBuilder.Query = uriBuilder.Query.Substring(1) + "&" + queryToAppend; } else { uriBuilder.Query = queryToAppend; } url = uriBuilder.ToString(); } var response = await SendRequestAsync(HttpMethod.Post, url, video); Operation operation = new Operation(response.Headers.GetValues(OperationLocation).First()); return operation; }
/// <summary> /// Create video operation. /// </summary> /// <param name="video">Video byte array.</param> /// <param name="videoOperationSettings">Settings of operation.</param> /// <returns>Video operation created.</returns> public async Task<Operation> CreateOperationAsync(byte[] video, VideoOperationSettings videoOperationSettings) { return await CreateOperationAsyncInternal(video, videoOperationSettings); }
/// <summary> /// Create video operation. /// </summary> /// <param name="videoUrl">Video url.</param> /// <param name="videoOperationSettings">Settings of operation.</param> /// <returns>Video operation created.</returns> public async Task<Operation> CreateOperationAsync(string videoUrl, VideoOperationSettings videoOperationSettings) { return await CreateOperationAsyncInternal(videoUrl, videoOperationSettings); }
/// <summary> /// Create video operation. /// </summary> /// <param name="videoUrl">Video url.</param> /// <param name="videoOperationSettings">Settings of operation.</param> /// <returns>Video operation created.</returns> public async Task<Operation> CreateOperationAsync(string videoUrl, VideoOperationSettings videoOperationSettings) { return await CreateOperationAsyncInternal(new VideoUrlRequest() { Url = videoUrl }, videoOperationSettings); }