public async Task RemovePlaylist(int id) { Configuration configuration = await dataService.Get <Configuration>(item => item.Type == nameof(MediaPages.Playlist)); await dataService.Delete <Playlist>(id); if (configuration != null) { PlaylistConfiguration playlistConfiguration = JsonConvert.DeserializeObject <PlaylistConfiguration>(configuration.JsonData); playlistConfiguration.SelectedPlaylistPage = PlaylistPages.Index; configuration.JsonData = JsonConvert.SerializeObject(playlistConfiguration); await dataService.Update(configuration); } }
public PlaylistConfigurationBuilder() { _instance = new PlaylistConfiguration { MaxVideos = int.MaxValue, BlackListPath = string.Empty, PlaylistGeneratorSettings = MockRepository.GenerateStub<IPlaylistGeneratorSettings>(), Sequence = new List<SequenceItemConfiguration>(), PoolConfigurations = new List<PoolConfiguration>(), PlaylistGuid = Guid.NewGuid(), Title = "Default Title" }; _instance.PlaylistGeneratorSettings.Stub(x => x.EligibleFileTypes).Return(new List<string> {"mp4", "avi", "test"}); _instance.PlaylistGeneratorSettings.Stub(x => x.BlacklistPath).Return(string.Empty); }
public Playlist Build(PlaylistConfiguration playlistConfiguration) { var videoScannerOptions = new VideoScannerOptions { Blacklist = _blacklistStore.Load(GetBlacklistPath(playlistConfiguration)), EligibleFileTypes = playlistConfiguration.PlaylistGeneratorSettings.EligibleFileTypes }; var videoScanner = _videoScannerProvider.GetVideoScanner(videoScannerOptions); var videoPoolsByName = playlistConfiguration .PoolConfigurations .ToDictionary(configuration => configuration.Name, configuration => new Pool(configuration, videoScanner, _randomProvider)); var playlist = new Playlist(); while (playlist.Videos.Count < playlistConfiguration.MaxVideos && videoPoolsByName.Any(x => x.Value.HasVideosRemaining)) { foreach (var poolName in playlistConfiguration.Sequence) { if (playlist.Videos.Count >= playlistConfiguration.MaxVideos) break; var pool = videoPoolsByName[poolName.Name]; if (!pool.HasVideosRemaining) { if(pool.ShouldReload) pool.ReinitializePool(); else continue; } playlist.Videos.Add(pool.GetNextVideoDirectory().GetNextVideo()); } } return playlist; }
public async Task <IEnumerable <IGrouping <string, Playlist> > > GetPlaylistGroups(PlaylistConfiguration configuration) { IEnumerable <IGrouping <string, Playlist> > groups = Enumerable.Empty <IGrouping <string, Playlist> >(); IEnumerable <Playlist> playlists = await dataService.GetList <Playlist>(default, default, playlist => playlist.PlaylistTracks,
private static string GetBlacklistPath(PlaylistConfiguration playlistConfiguration) { return playlistConfiguration.BlackListPath ?? playlistConfiguration.PlaylistGeneratorSettings.BlacklistPath; }