Example #1
0
 public TwitchUserService(IMemoryCache cache, IDbContextFactory <TwitchEbooksContext> contextFactory, TwitchApiFactory apiFactory, TwitchSettings settings)
 {
     _cache          = cache;
     _contextFactory = contextFactory;
     _apiFactory     = apiFactory;
     _settings       = settings;
 }
Example #2
0
        private static ServiceProvider ConfigureServiceCollection(ServiceCollection serviceCollection)
        {
            return(serviceCollection
                   // Settings
                   .Configure <Hosts>(GetSettingsFile("appsettings.json", "HostsConfig"))
                   .Configure <Settings>(GetSettingsFile("appsettings.json", "Settings"))
                   .Configure <StreamAnnouncerSettings>(GetSettingsFile("appsettings.json", "StreamAnnouncerSettings"))

                   // Services
                   .AddSingleton <IStreamAnnouncer, StreamAnnouncer>()

                   // Discord
                   .AddSingleton <IDiscordBot, DiscordBot>()
                   .AddSingleton <DiscordSocketClient>()

                   // Serilog
                   .AddSingleton((ILogger) new LoggerConfiguration()
                                 .WriteTo.Async(a => a.RollingFile("logs/enigma-{Date}.log", retainedFileCountLimit: 3))
                                 .WriteTo.Console()
                                 .CreateLogger())

                   // Twitch Api
                   .AddSingleton(provider =>
                                 TwitchApiFactory.Create(
                                     provider.GetRequiredService <IOptions <Settings> >().Value.TwitchClientId,
                                     provider.GetRequiredService <IOptions <Settings> >().Value.TwitchAccessToken))

                   // Helpers
                   .AddSingleton <ITwitchApiHelper, TwitchApiHelper>()

                   // Logging
                   .AddLogging(configure => configure.AddConsole())
                   .BuildServiceProvider());
        }
Example #3
0
 public TwitchService(
     ILogger <TwitchService> logger,
     IDbContextFactory <TwitchEbooksContext> contextFactory,
     IMediator mediator,
     ITwitchUserService userService,
     TwitchApiFactory apiFactory,
     TwitchClient client,
     TwitchSettings settings)
 {
     _logger         = logger;
     _contextFactory = contextFactory;
     _mediator       = mediator;
     _userService    = userService;
     _apiFactory     = apiFactory;
     _client         = client;
     _settings       = settings;
 }
Example #4
0
        public static IHostBuilder CreateHostBuilder(string[] args)
        {
            return(Host.CreateDefaultBuilder(args)
                   .ConfigureServices((hostContext, services) =>
            {
                services.AddHostedService <Worker>();

                // Settings
                services.Configure <ConfigSettings>(GetSettingsFile("appsettings.json", "Settings"));

                // Discord
                services.AddSingleton <IDiscordBot, DiscordBot>();
                services.AddSingleton <DiscordSocketClient>();
                services.AddSingleton <CommandService>();
                services.AddSingleton <CommandHandler>();

                // Twitch Api
                services.AddSingleton(provider =>
                                      TwitchApiFactory.Create(
                                          provider.GetRequiredService <IOptions <ConfigSettings> >().Value.TwitchClientId,
                                          provider.GetRequiredService <IOptions <ConfigSettings> >().Value.TwitchClientSecret));

                services.AddSingleton <ITwitchApiHelper, TwitchApiHelper>();

                // Database
                services.AddSingleton <IDataStore>(new DataStore("Database.json", keyProperty: "id",
                                                                 reloadBeforeGetCollection: true));

                // Repositories
                services.AddSingleton(typeof(IDataStoreRepository <>), typeof(DataStoreRepository <>));

                // Modules
                services
                .AddSingleton <IStreamAnnouncer, StreamAnnouncer.Service.Modules.StreamAnnouncer.StreamAnnouncer
                               >();
            }));
        }