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);
    }