// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddMediatR(typeof(Startup).GetTypeInfo().Assembly); services.AddDbContext <DatabaseContext>(options => { string conString = ConfigurationExtensions .GetConnectionString(Configuration, "DefaultConnection"); Console.WriteLine(conString); options.UseSqlServer(conString); }, ServiceLifetime.Scoped); services.Configure <JwtConfigurationSettings>(Configuration.GetSection("Jwt")); services.AddTransient(typeof(IDatabaseContext), InitializeDatabaseContext.ResolveDatabaseContextType()); services .AddHealthChecks() .AddCheck <DatabaseHealthCheck>("MsSql database exists check", failureStatus: HealthStatus.Degraded); services.AddTransient <IValidator <User>, UserValidator>(); services.AddTransient <IValidator <CreateUserRequest>, CreateUserRequestValidator>(); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info { Title = "My API", Version = "v1" }); }); }
static void Main(string[] args) { IConfiguration config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", false, true) .Build(); var services = new ServiceCollection(); services.AddTransient <MongoDatabaseContext>(); services.AddTransient(typeof(IDatabaseContext), InitializeDatabaseContext.ResolveDatabaseContextType()); services.AddTransient <ExternalUsersSync>(); services.AddDbContext <DatabaseContext>(options => { string conString = ConfigurationExtensions .GetConnectionString(config, "DefaultConnection"); Console.WriteLine(conString); options.UseSqlServer(conString); }, ServiceLifetime.Scoped); services.AddLogging(loggingBuilder => { loggingBuilder.AddSeq(config.GetSection("Seq")); }); services.AddQuartz(); var serviceProvider = services.BuildServiceProvider(); Task.Run(async() => await StartQuartz.Start(serviceProvider)); Console.ReadLine(); }
static async Task Main(string[] args) { IConfiguration config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", false, true) .Build(); var services = new ServiceCollection(); services.AddTransient(typeof(IDatabaseContext), InitializeDatabaseContext.ResolveDatabaseContextType()); //services.AddTransient<ExternalUsersSync>(); services.AddDbContext <DatabaseContext>(options => { string conString = ConfigurationExtensions .GetConnectionString(config, "DefaultConnection"); Console.WriteLine(conString); options.UseSqlServer(conString); }, ServiceLifetime.Scoped); services.AddTransient <IEventHandler, CreateUserEventHandler>(); services.AddTransient <QueueConnection>(); services.AddLogging(loggingBuilder => { loggingBuilder.AddSeq(config.GetSection("Seq")); }); var provider = services.BuildServiceProvider(); var queue = provider.GetService <QueueConnection>(); var cts = new CancellationTokenSource(); Task.Run(async() => { queue.Connect(cts.Token); }); Console.WriteLine("Publish message?"); await queue.Publish(Console.ReadLine()); Console.WriteLine("Terminate?"); Console.ReadLine(); cts.Cancel(); }