using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Sony.Filtr.Contracts.Definitions; using Sony.Filtr.Contracts.Entities; using Sony.Filtr.PlaylistContainer.Models; namespace Sony.Filtr.PlaylistContainer { public class PlaylistContainerManager { private readonly PlaylistContainerFactory _playlistContainerFactory; public PlaylistContainerManager(PlaylistContainerFactory playlistContainerFactory) { _playlistContainerFactory = playlistContainerFactory; } public async Task GetOrCreatePlaylistContainer(string playlistId, int musicServiceId) { return await _playlistContainerFactory.GetOrCreatePlaylistContainerAsync(playlistId, musicServiceId); } public async Task GetPlaylistContainerAsync(string playlistId, int musicServiceId) { return await _playlistContainerFactory.GetPlaylistContainerAsync(playlistId, musicServiceId); } public async Task UpdatePlaylistContainerAsync(Models.PlaylistContainer container) { await _playlistContainerFactory.UpdatePlaylistContainerMetaDataAsync(container); } public async Task AddPlaylistLinkAsync(string sourcePlaylistId, int sourceMusicServiceId, string linkedPlaylistId, int linkedMusicServiceId, string playlistName = null) { await _playlistContainerFactory.AddPlaylistLinkAsync(sourcePlaylistId, sourceMusicServiceId, linkedPlaylistId, linkedMusicServiceId, playlistName); } public async Task> GetLinkedPlaylistsAsync(string playlistId, int musicServiceId) { return await _playlistContainerFactory.GetLinkedPlaylistsAsync(playlistId, musicServiceId); } public async Task> GetLinkedPlaylistsAsync(int playlistContainerId) { return await _playlistContainerFactory.GetLinkedPlaylistsAsync(playlistContainerId); } public async Task DeleteLinkedPlaylistAsync(int playlistContainerId, string playlistId, int musicServiceId) { await _playlistContainerFactory.DeleteLinkedPlaylistAsync(playlistContainerId, playlistId, musicServiceId); } public async Task GetPlaylistMarketAsync(string playlistId, MusicService musicService) { return await _playlistContainerFactory.GetPlaylistMarketAsync(playlistId, musicService); } public async Task> GetPlaylistMarketMappingsAsync(MusicService musicService) { return await _playlistContainerFactory.GetPlaylistMarketMappingsAsync(musicService); } public async Task SetPlaylistMarketAsync(string playlistId, MusicService musicService, string market) { await _playlistContainerFactory.SetPlaylistMarketAsync(playlistId, musicService, market); } } }