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; }
public async Task <string> GetThumbnailUrl(Talk talk) { var thumbnailUrl = await cache.GetOrSet( TalkPersistence.GetThumnnailHashName(talk.TalkName), () => CreateThumbnailUrl(talk)); return(thumbnailUrl); }
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); }
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)); } }