public static ServiceProvider BuildTestServiceProvider(this IServiceCollection services, TestBotData data = null)
        {
            if (!services.IsRegistered <IDiscordClient>())
            {
                services.AddSingleton <IDiscordClient, TestDiscordClient>();
            }

            if (!services.IsRegistered <TestBotData>())
            {
                services.AddSingleton(data ?? new TestBotData());
            }

            HostExtensions.AddDefaultServices(services);

            if (!services.IsRegistered <IBotApplicationBuilderFactory>())
            {
                services.AddApplicationBuilder(builder =>
                {
                    // Do nothing.
                });
            }

            services.PostConfigure <DiscordOptions>(options =>
            {
                options.Token ??= "INVALID-TOKEN";
            });

            var provider = services.BuildServiceProvider();

            provider.GetRequiredService <IEventManager>().CallAsync(new InitializeEvent()).AsTask().Wait();

            return(provider);
        }
Пример #2
0
        public static async Task Main(string[] args)
        {
            var environment   = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production";
            var configuration = HostExtensions.CreateConfiguration(environment, args);

            Log.Logger = HostExtensions.CreateLogger(configuration, environment, AppName);

            var host = CreateHost(configuration, args);

            using (var scope = host.Services.CreateScope())
            {
                await scope.ServiceProvider.GetRequiredService <PeopleDbContext>()
                .OnModelCreatingAsync();

                await scope.ServiceProvider.GetRequiredService <InfrastructureDbContext>()
                .OnModelCreatingAsync();

                // await new InfrastructureContextSeed(
                //     scope.ServiceProvider.GetRequiredService<InfrastructureDbContext>(),
                //     scope.ServiceProvider.GetRequiredService<IWebHostEnvironment>()
                // ).SeedAsync();
            }

            await host.RunAsync();
        }
Пример #3
0
        public static Task Main(string[] args)
        {
            var environment   = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production";
            var configuration = HostExtensions.CreateConfiguration(environment, args);

            Log.Logger = HostExtensions.CreateLogger(configuration, environment, AppName);

            var host = CreateHostBuilder(configuration, args);

            return(host.RunAsync());
        }
Пример #4
0
 public static void Main(string[] args)
 {
     using var logger = HostExtensions.CreateLogger(new string[0]);
     try
     {
         CreateHostBuilder(args)
         .Build()
         .Run();
     }
     catch (Exception e)
     {
         logger.Fatal("Aspnet host crashed! ", e);
         Console.WriteLine(e);
     }
     finally
     {
         logger.Dispose();
     }
 }