Example #1
0
 public TalkService(TalkPersistence talkPersistence, Users users, ContentService contentService, ThumbnailService thumbnailService, ISlackClient slackClient)
 {
     this.talkPersistence  = talkPersistence;
     this.users            = users;
     this.contentService   = contentService;
     this.thumbnailService = thumbnailService;
     this.slackClient      = slackClient;
 }
Example #2
0
        public async Task <string> GetThumbnailUrl(Talk talk)
        {
            var thumbnailUrl = await cache.GetOrSet(
                TalkPersistence.GetThumnnailHashName(talk.TalkName),
                () => CreateThumbnailUrl(talk));

            return(thumbnailUrl);
        }
Example #3
0
        public string ClearCache(Talk talk)
        {
            var talkKey = GetTalkKey(talk.ConferenceId, talk.TalkName);

            memoryCache.Remove(LatestTalksKey);
            memoryCache.Remove(talk.Speaker);
            memoryCache.Remove(talk.ConferenceId);
            memoryCache.Remove(GetConferenceTalksKey(talk.ConferenceId));
            memoryCache.Remove(GetTalkViewKey(talk.ConferenceId, talk.TalkName));
            memoryCache.Remove(TalkPersistence.GetThumbnailKey(talk.TalkName));
            memoryCache.Remove(TalkPersistence.GetThumnnailHashName(talk.TalkName));
            memoryCache.Remove(SpeakersKey);
            memoryCache.Remove(talkKey);
            return(talkKey);
        }
Example #4
0
        public async Task <IActionResult> GetTalkThumbnail(string conferenceId, string talkName)
        {
            Console.WriteLine($"GetTalkThumbnail " + conferenceId + " " + talkName);
            var view = await cache.GetOrSet(TalkPersistence.GetThumbnailKey(talkName), GetThumbnail);

            return(view);

            async Task <IActionResult> GetThumbnail()
            {
                var conference = GetConferenceFromId(conferenceId);
                var thumbnail  = await thumbnailService.GetTalkThumbnail(conference, talkName);

                return(File(thumbnail.ImageData, thumbnail.ContentType));
            }
        }