using Sony.Filtr.DistributedCaching; using Sony.Filtr.NewMusicFriday.Caching.Models; using System; using System.Collections.Generic; namespace Sony.Filtr.NewMusicFriday.Caching { public class NewMusicFridayCacheProvider { private readonly DistributedCacheHandler _cacheHandler; public NewMusicFridayCacheProvider(DistributedCacheHandler cacheHandler) { _cacheHandler = cacheHandler; } public void SetPlaylistReferences(IDictionary playlistReferences) { _cacheHandler.Put(NewMusicFridayCacheKeys.PlaylistReferences, playlistReferences); } public IDictionary GetPlaylistReferences() { return _cacheHandler.Get(NewMusicFridayCacheKeys.PlaylistReferences) as IDictionary; } public void SetPlaylistCollection(string playlistId, DateTime date, List playlistContent) { _cacheHandler.Put(BuildPlaylistCacheKey(playlistId, date), playlistContent); } public List GetPlaylistCollection(string playlistId, DateTime date) { return _cacheHandler.Get(BuildPlaylistCacheKey(playlistId, date)) as List; } private string BuildPlaylistCacheKey(string playlistId, DateTime date) { return string.Join(":", "NMF_playlistTracklist", playlistId, date); } public void ClearCache(string playlistPlaylistId, DateTime date) { _cacheHandler.Remove(BuildPlaylistCacheKey(playlistPlaylistId, date)); } } internal class NewMusicFridayCacheKeys { internal const string PlaylistReferences = "NMF_PlaylistReferences"; } }