/// <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)));
 }
예제 #3
0
 /// <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));
 }
예제 #4
0
 /// <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
         }
     }));
 }
예제 #5
0
        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);
        }
예제 #6
0
        /// <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);
        }