public StreamerController( ChunkerConfig chunkerConfig, StreamerSessionCfg streamerSessionCfg, IDistributedCache cache, ITokenBroker tokenBroker, ISessionBroker sessionBroker, ITokenParser tokenParser, IChunkCollector chunkCollector, IPlaylistAssembler playlistAssembler) { _cache = cache; _tokenBroker = tokenBroker; _tokenParser = tokenParser; _sessionBroker = sessionBroker; _chunkCollector = chunkCollector; _playlistAssembler = playlistAssembler; _chunkerConfig = chunkerConfig; _sessionCfg = streamerSessionCfg; }
public void ConfigureServices(IServiceCollection services) { services.AddMvc(); // Entity Framework var connectionStr = _cfg["DBConnectionStr"]; services.AddDbContext <StreamerContext>( o => o.UseSqlite(connectionStr)); // Redis services.AddDistributedRedisCache(o => { o.Configuration = "localhost"; o.InstanceName = "VideoStreamings"; }); // Custom stuff //services.AddSingleton<StreamingProcManager>(); //services.AddSingleton<StreamsUpdateManager>(); services.AddSingleton(ChunkerConfig.Load(_cfg)); services.AddSingleton(StreamerSessionCfg.Load(_cfg)); services.AddSingleton <StreamsConfig>(); services.AddSingleton <StreamsUpdateWatcher>(); services.AddTransient <IChunkCollector, ChunkCollector>(); services.AddTransient < IPlaylistAssembler, SimplePlaylistAssembler>(); services.AddTransient <ITokenBroker, SHA256TokenBroker>(); services.AddTransient <ITokenParser, TokenParser>(); services.AddTransient <ISessionBroker, SessionBroker>(); services.AddTransient <UserTypeIdentifier>(); services.AddTransient <IUserTypeIdentifier, PaidUserTypeIdentifier>(); services.AddTransient <IUserTypeIdentifier, GuestUserTypeIdentifier>(); }