public UpdateProvidersManagementService(ILogger <UpdateProvidersManagementService> logger, IServiceProvider serviceProvider, UpdateProvidersConfigurationService updateProvidersConfigurationService) { this._logger = logger; this._logger.LogTrace("Building {@UpdateProvidersManagementService}", typeof(UpdateProvidersManagementService)); this._serviceProvider = serviceProvider; this._updateProvidersConfigurationService = updateProvidersConfigurationService; this._logger.LogTrace("Built {@UpdateProvidersManagementService}", typeof(UpdateProvidersManagementService)); }
private static IHostBuilder CreateHostBuilder(string[] args) { return(Host.CreateDefaultBuilder(args).ConfigureServices((hostContext, services) => { services.AddDbContext <DatabaseContext>(); var config = hostContext.Configuration; services.AddOptions <DiscordOptions>().Bind(config.GetSection(DiscordOptions.Discord)); services.AddOptions <CommandsOptions>().Bind(config.GetSection(CommandsOptions.Commands)); services.AddOptions <DatabaseOptions>().Bind(config.GetSection(DatabaseOptions.Database)); services.AddSingleton <DiscordClient>(provider => { var options = provider.GetRequiredService <IOptions <DiscordOptions> >(); var loggerFactory = provider.GetRequiredService <ILoggerFactory>(); var cfg = new DiscordConfiguration { Intents = DiscordIntents.Guilds | DiscordIntents.GuildMembers | DiscordIntents.GuildMessages, Token = options.Value.Token, AutoReconnect = true, LoggerFactory = loggerFactory, ReconnectIndefinitely = true, MessageCacheSize = 256, MinimumLogLevel = LogLevel.Trace }; return new(cfg); }); services.AddSingleton <UpdatePublishingService>(); services.AddSingleton <ICommandsService, CommandsService>(); services.AddSingleton <UpdateProvidersConfigurationService>(); services.AddSingleton <GuildManagementService>(); UpdateProvidersConfigurationService.ConfigureProviders(config, services); services.AddHostedService <UpdateProvidersManagementService>(); services.AddHostedService <DiscordBackgroundService>(); services.AddHostedService <OnStartupActionsExecutingService>(); }).UseSerilog((context, _, configuration) => { configuration.ReadFrom.Configuration(context.Configuration).Enrich.FromLogContext().WriteTo.Console( outputTemplate: "[{Timestamp:dd.MM.yy HH\\:mm\\:ss.fff} {Level:u3}] [{SourceContext}]{NewLine}{Message:lj}{NewLine}{Exception}"); })); }
/// <inheritdoc /> public UngroupedCommands(UpdateProvidersConfigurationService providersConfigurationService) { this._providersConfigurationService = providersConfigurationService; }