public Plugin(IApplicationPaths applicationPaths, IXmlSerializer xmlSerializer, IPlaylistManager playlistManager, ILibraryManager libraryManager, ILogger logger, IUserManager userManager, IJsonSerializer jsonSerializer, IServerApplicationPaths serverApplicationPaths, ISessionManager sessionManager) : base(applicationPaths, xmlSerializer) { _logger = logger; _sessionManager = sessionManager; Instance = this; var smartPlaylistFileSystem = new EnsureBaseDirSmartPlaylistFileSystemDecorator(new SmartPlaylistFileSystem(serverApplicationPaths)); var smartPlaylistStore = new SmartPlaylistStorePerfLoggerDecorator(new CacheableSmartPlaylistStore( new CleanupOldCriteriaDecorator(new SmartPlaylistStore(jsonSerializer, smartPlaylistFileSystem)))); var userItemsProvider = new UserItemsProviderPerfLoggerDecorator(new UserItemsProvider(libraryManager)); var smartPlaylistProvider = new SmartPlaylistProviderPerfLoggerDecorator(new SmartPlaylistProvider(smartPlaylistStore)); var playlistRepository = new PlaylistRepositoryPerfLoggerDecorator(new PlaylistRepository(userManager, libraryManager)); var playlistItemsUpdater = new PlaylistItemsUpdaterPerfLoggerDecorator(new PlaylistItemsUpdater(playlistManager)); MessageBus = new MessageBus(); SubscribeMessageHandlers(smartPlaylistProvider, userItemsProvider, playlistRepository, playlistItemsUpdater, smartPlaylistStore); SmartPlaylistStore = smartPlaylistStore; SmartPlaylistValidator = new SmartPlaylistValidator(); Logger.Instance = new Logger(logger); }
public SmartPlaylistApi(ISessionContext sessionContext ) { _sessionContext = sessionContext; _messageBus = Plugin.Instance.MessageBus; _smartPlaylistStore = Plugin.Instance.SmartPlaylistStore; _smartPlaylistValidator = Plugin.Instance.SmartPlaylistValidator; }