private async Task EnrichTweetWithAttachments()

in Twitter/SDK/JobProcessorTwitter.cs [150:188]


        private async Task<Tweet> EnrichTweetWithAttachments(Tweet tweet)
        {
            if (tweet == null)
                return null;

            if (tweet.Entities != null && tweet.Entities.MediaObjects != null)
            {
                List<DefaultMediaTwitter> entitiesMediaObject = null;
                foreach (var media in tweet.Entities.MediaObjects)
                {
                    if (entitiesMediaObject == null)
                    {
                        entitiesMediaObject = new List<DefaultMediaTwitter>();
                    }
                    media.Content = await downloader.DownloadFileAsBase64EncodedString(media.MediaUrlHttps);
                    entitiesMediaObject.Add(media);
                }
                tweet.Entities.MediaObjects = entitiesMediaObject;
            }

            if (tweet.ExtendedEntities != null && tweet.ExtendedEntities.ExtendedMediaObjects != null)
            {
                List<ExtendedMediaTwitter> extEntitiesMediaObject = null;
                foreach (var media in tweet.ExtendedEntities.ExtendedMediaObjects)
                {
                    if (extEntitiesMediaObject == null)
                    {
                        extEntitiesMediaObject = new List<ExtendedMediaTwitter>();
                    }
                    media.Content = await downloader.DownloadFileAsBase64EncodedString(media.MediaUrlHttps);
                    extEntitiesMediaObject.Add(media);
                }
                tweet.ExtendedEntities.ExtendedMediaObjects = extEntitiesMediaObject;
            }

            tweet.RetweetedStatus = await EnrichTweetWithAttachments(tweet.RetweetedStatus);
            tweet.QuotedStatus = await EnrichTweetWithAttachments(tweet.QuotedStatus);
            return tweet;
        }