public static int Main() { var configuration = ApplicationSettingsConfigurationProvider.Get(); var connectionString = configuration.GetConnectionString("Database"); EnsureDatabase.For.SqlDatabase(connectionString); var upgrader = DeployChanges.To .SqlDatabase(connectionString) .WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly()) .LogToConsole() .Build(); var result = upgrader.PerformUpgrade(); if (!result.Successful) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(result.Error); Console.ResetColor(); #if DEBUG Console.ReadLine(); #endif return(-1); } Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Success!"); Console.ResetColor(); return(0); }
public override void ConfigureServices(IServiceCollection serviceCollection) { var configuration = ApplicationSettingsConfigurationProvider.Get(); var rabbitMqSettings = configuration.GetSection("Bus").Get <PublisherRabbitMqSettings>(); EventsPublisherBuilder .Create(serviceCollection) .WithSettings(configuration.GetSection("Settings").Get <EventsPublisherSettings>()) .WithDbContext <MonolithDbContext>() .WithTransactionProvider <MonolithDbContext>() .WithEventsFromAssemblyOfType <RegistrationPaid>() .WithEventsFromAssemblyOfType <LocationAdded>() .WithEventsFromAssemblyOfType <ExamPlanned>() .WithPersistence(services => { services.AddPersistence( configuration.GetConnectionString("Database"), configuration.GetConnectionString("Database")); services.TryAddTransient <ISystemTimeProvider, SystemTimeProvider>(); }) .ToRabbitMq(rabbitMqSettings) .Build(); serviceCollection.AddHealthChecks() .AddSqlServer(configuration.GetConnectionString("Database")) .AddRabbitMQ(rabbitConnectionString: RabbitMqConnectionStringBuilder.Build(rabbitMqSettings.Host, rabbitMqSettings.Username, rabbitMqSettings.Password)); }
public static IServiceProvider Build() { var applicationSettings = ApplicationSettingsConfigurationProvider.Get(); var serviceCollection = new ServiceCollection(); serviceCollection.AddLogging(builder => builder.AddNUnitConsoleOutput()); serviceCollection.AddSingleton <IConfiguration>(provider => applicationSettings); serviceCollection.AddTransient(serviceProvider => serviceProvider.GetRequiredService <IConfiguration>().GetSection(ApplicationSettings.Authority).Get <AuthoritySettings>()); serviceCollection.AddTransient(serviceProvider => serviceProvider.GetRequiredService <IConfiguration>().GetSection(ApplicationSettings.Monolith).Get <MonolithApiSettings>()); serviceCollection.AddTransient <IHttpClientProvider, HttpClientProvider>(); serviceCollection.AddTransient <Scenarios.Scenarios>(); serviceCollection.AddTransient <ExamScenarios>(); serviceCollection.AddTransient <LocationScenarios>(); serviceCollection.AddTransient <MessageScenarios>(); serviceCollection.AddTransient <OrderScenarios>(); serviceCollection.AddTransient <RegistrationScenarios>(); serviceCollection.AddTransient <SubjectScenarios>(); serviceCollection.AddHttpClient(); serviceCollection.AddDomainEvents(); serviceCollection.AddEventTypeProvider(new ConsumersEventTypeProviderBuilder(new EventNamespaceReader()) .Build()); serviceCollection.RegisterRabbitMqPublisher(applicationSettings.GetSection(ApplicationSettings.Bus) .Get <PublisherRabbitMqSettings>()); serviceCollection.AddSnapshots(ApplicationSettings.ConnectionStrings.Database); serviceCollection.AddResourceAwaiters(applicationSettings.GetSection(ApplicationSettings.Bus) .Get <RabbitMqResourceConfiguration>()); return(serviceCollection.BuildServiceProvider()); }
public override void ConfigureServices(IServiceCollection serviceCollection) { var configuration = ApplicationSettingsConfigurationProvider.Get(); var rabbitMqSettings = configuration.GetSection("Bus").Get <ConsumerRabbitMqSettings>(); EventsConsumerBuilder .Create(serviceCollection) .WithHandlersFromAssemblyOfType <OnLocationAdded>() .WithServices(services => { services.AddPersistence( configuration.GetConnectionString("Database"), configuration.GetConnectionString("Database")); services.AddInbox <MonolithDbContext>(); services.AddMemoryCache(); }) .ToRabbitMq(rabbitMqSettings) .Build(); serviceCollection.AddHealthChecks() .AddSqlServer(configuration.GetConnectionString("Database")) .AddRabbitMQ(rabbitConnectionString: RabbitMqConnectionStringBuilder.Build(rabbitMqSettings.Host, rabbitMqSettings.Username, rabbitMqSettings.Password)); }