/// <summary> /// Returns Request that has valid values to save media /// </summary> /// <param name="filename">filename of the media. Needed to validate request values</param> /// <param name="finalizeResponse">finalize response. Needed to validate request values</param> /// <returns>Request to save media</returns> private Request <string> GetSaveMediaRequest(string filename, FinalizeResponse finalizeResponse) { return(It.Is <Request <string> >(req => req.Uri == $"/api/v4/media/save/{finalizeResponse.ImportId}/" && req.HTTPMethod == HttpMethod.Post && ((SaveMediaQuery)req.Query).Filename == Path.GetFileName(filename))); }
/// <summary> /// Returns Request that has valid values to poll status /// </summary> /// <param name="finalizeResponse">Finalize response. Needed to validate request values</param> /// <returns>Request to poll status</returns> private Request <PollStatus> GetValidPollStatus(FinalizeResponse finalizeResponse) { return(It.Is <Request <PollStatus> >(req => req.Uri == "/api/v4/upload/poll/" && req.HTTPMethod == HttpMethod.Get && ((PollQuery)req.Query).Items.Contains(finalizeResponse.ImportId))); }
/// <summary> /// Polls status of a file using <see cref="FinalizeResponse"/>. This is used to know /// if Bynder already converted the file, or if it failed. /// </summary> /// <param name="finalizeResponse">finalize response information</param> /// <returns>Task with poll status information</returns> private async Task <PollStatus> PollStatusAsync(FinalizeResponse finalizeResponse) { return(await PollStatusAsync(new PollQuery { Items = new List <string> { finalizeResponse.ImportId } }).ConfigureAwait(false)); }
/// <summary> /// Polls status of a file using <see cref="FinalizeResponse"/>. This is used to know /// if Bynder already converted the file, or if it failed. /// </summary> /// <param name="finalizeResponse">finalize response information</param> /// <returns>Task with poll status information</returns> private Task <PollStatus> PollStatusAsync(FinalizeResponse finalizeResponse) { return(PollStatusAsync(new PollQuery { Items = new List <string> { finalizeResponse.ImportId } })); }
private bool HasFinishedSuccessfully(FinalizeResponse finalizeResponse) { for (int iterations = MAX_POLLING_ITERATIONS; iterations > 0; --iterations) { var pollStatus = _bynderClient.PollStatus(new string[] { finalizeResponse.ImportId }); if (pollStatus != null) { if (pollStatus.ItemsDone.Contains(finalizeResponse.ImportId)) { return(true); } if (pollStatus.ItemsFailed.Contains(finalizeResponse.ImportId)) { return(false); } } Thread.Sleep(POLLING_IDDLE_TIME); } return(false); }
/// <summary> /// Function to check if file has finished converting within expected timeout. /// </summary> /// <param name="finalizeResponse">Finalize response information</param> /// <returns>Task returning true if file has finished converting successfully. False otherwise</returns> private async Task <bool> HasFinishedSuccessfullyAsync(FinalizeResponse finalizeResponse) { for (int iterations = MAX_POLLING_ITERATIONS; iterations > 0; --iterations) { var pollStatus = await PollStatusAsync(finalizeResponse).ConfigureAwait(false); if (pollStatus != null) { if (pollStatus.ItemsDone.Contains(finalizeResponse.ImportId)) { return(true); } if (pollStatus.ItemsFailed.Contains(finalizeResponse.ImportId)) { return(false); } } await Task.Delay(POLLING_IDDLE_TIME).ConfigureAwait(false); } return(false); }