Exemple #1
0
        public IMedia WaitForMediaProcessingToGetAllMetadata(IMedia media)
        {
            var isProcessed = IsMediaProcessed(media.UploadedMediaInfo);

            if (isProcessed)
            {
                return(media);
            }

            var processingInfoDelay            = media.UploadedMediaInfo.ProcessingInfo.CheckAfterInMilliseconds;
            var dateWhenProcessingCanBeChecked = media.UploadedMediaInfo.CreatedDate.Add(TimeSpan.FromMilliseconds(processingInfoDelay));

            var timeToWait = (int)DateTime.Now.Subtract(dateWhenProcessingCanBeChecked).TotalMilliseconds;

            IUploadedMediaInfo mediaStatus = null;

            while (!isProcessed)
            {
                _threadHelper.Sleep(timeToWait);

                // The second parameter (false) informs Tweetinvi that you are manually awaiting the media to be ready
                mediaStatus = _uploadQueryExecutor.GetMediaStatus(media, false);
                isProcessed = IsMediaProcessed(mediaStatus.ProcessingInfo);
                timeToWait  = mediaStatus.ProcessingInfo.CheckAfterInMilliseconds;
            }

            media = media.CloneWithoutUploadInfo();
            media.UploadedMediaInfo = mediaStatus;

            return(media);
        }