private async Task <AnimatedThumbnailsResponse> CreateAnimatedThumbnails(long videoId) { Video video = new Video(); while (video.Status != "available") { _sleepService.Sleep(20 * 1000); var response = await _getVideoService.ExecuteAsync(videoId.ToString()); if (response?.Data == null) { _logger.LogError($"Video does not exist on vimeo!"); return(null); } video = response.Data; } var startAnimation = GetRandomStart(video.Duration > 6 ? video.Duration : 0); var addAnimatedThumbnailsToVideoRequest = new AddAnimatedThumbnailsToVideoRequest(videoId, startAnimation, video.Duration >= 6 ? 6 : video.Duration); var addAnimatedThumbnailsToVideoResult = await _addAnimatedThumbnailsToVideoService.ExecuteAsync(addAnimatedThumbnailsToVideoRequest); var pictureId = addAnimatedThumbnailsToVideoResult?.Data?.PictureId; if (string.IsNullOrEmpty(pictureId)) { _logger.LogError($"Creating Animated Thumbnails Error!"); _logger.LogError($"StatusCode: {addAnimatedThumbnailsToVideoResult?.Code}"); _logger.LogError($"Error: {addAnimatedThumbnailsToVideoResult?.Text}"); return(null); } var statusAnimatedThumbnails = string.Empty; var getStatusAnimatedThumbnailRequest = new GetAnimatedThumbnailRequest(videoId, pictureId); while (statusAnimatedThumbnails != "completed") { var statusResult = await _getStatusAnimatedThumbnailService.ExecuteAsync(getStatusAnimatedThumbnailRequest); if (statusResult.Code == System.Net.HttpStatusCode.InternalServerError || statusResult.Code == System.Net.HttpStatusCode.Unauthorized || statusResult.Code == System.Net.HttpStatusCode.NotFound) { statusAnimatedThumbnails = string.Empty; } else { statusAnimatedThumbnails = statusResult.Data.Status; } _sleepService.Sleep(5 * 1000); } var getAnimatedThumbnailResult = await _getAnimatedThumbnailService.ExecuteAsync(getStatusAnimatedThumbnailRequest); _logger.LogInformation($"Creating Animated Thumbnails Done!"); return(getAnimatedThumbnailResult.Data); }
public async Task ReturnsSuccessAddAnimatedThumbnailsTest() { var videoId = await _testFileHelper.UploadTest(); videoId.ShouldNotBe(0); Video video = new Video(); while (video.Status != "available") { Thread.Sleep(20 * 1000); video = (await _getVideoService.ExecuteAsync(videoId.ToString())).Data; } var request = new AddAnimatedThumbnailsToVideoRequest(videoId, START_TIME, DURATION); var result = await _addAnimatedThumbnailsToVideoService.ExecuteAsync(request); result.ShouldNotBeNull(); result.Code.ShouldNotBe(HttpStatusCode.BadRequest); var status = string.Empty; var getStatusAnimatedThumbnailRequest = new GetAnimatedThumbnailRequest(videoId, result.Data.PictureId); while (status != "completed") { var statusResult = await _getStatusAnimatedThumbnailService.ExecuteAsync(getStatusAnimatedThumbnailRequest); statusResult.Code.ShouldNotBe(HttpStatusCode.BadRequest); status = statusResult.Data.Status; Thread.Sleep(5 * 1000); } var getAnimatedThumbnailResult = await _getAnimatedThumbnailService.ExecuteAsync(getStatusAnimatedThumbnailRequest); getAnimatedThumbnailResult.Code.ShouldNotBe(HttpStatusCode.BadRequest); var deleteResult = await _testFileHelper.DeleteTestFile(videoId.ToString()); deleteResult.ShouldBe(System.Net.HttpStatusCode.NoContent); }