Esempio n. 1
0
    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));
    }
Esempio n. 2
0
    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}");
        }));
    }
Esempio n. 3
0
 /// <inheritdoc />
 public UngroupedCommands(UpdateProvidersConfigurationService providersConfigurationService)
 {
     this._providersConfigurationService = providersConfigurationService;
 }