Esempio n. 1
0
 public DbCleanupService(
     ApplicationStateTransmitter applicationStateTransmitter,
     ILogger <DbCleanupService> log,
     IServiceScopeFactory serviceScopeFactory)
 {
     _applicationStateTransmitter = applicationStateTransmitter;
     _log = log;
     _serviceScopeFactory = serviceScopeFactory;
 }
 public VoiceRecognitionUpdateService(ILogger <VoiceRecognitionUpdateService> log,
                                      IServiceScopeFactory serviceScopeFactory,
                                      NamedPipeChannel namedPipeChannel,
                                      ApplicationStateTransmitter applicationStateTransmitter)
 {
     _log = log;
     _serviceScopeFactory         = serviceScopeFactory;
     _namedPipeChannel            = namedPipeChannel;
     _applicationStateTransmitter = applicationStateTransmitter;
 }
Esempio n. 3
0
 public SeedService(IServiceScopeFactory serviceScopeFactory,
                    IEnumerable <IRoleNameProvider> roleNameProviders,
                    ILogger <SeedService> logger,
                    ApplicationStateTransmitter applicationStateTransmitter)
 {
     _serviceScopeFactory = serviceScopeFactory;
     _roleNameProviders   = roleNameProviders;
     _logger = logger;
     _applicationStateTransmitter = applicationStateTransmitter;
 }
Esempio n. 4
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app,
                              IWebHostEnvironment env,
                              IServiceScopeFactory serviceScopeFactory,
                              ILogger <Startup> logger,
                              ApplicationStateTransmitter applicationStateTransmitter)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseMigrationsEndPoint();

                app.UseSwagger();
                app.UseSwaggerUI(options =>
                {
                    options.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
                });
            }
            else
            {
                app.UseExceptionHandler("/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();

            app.UseRouting();
            app.UseAuthentication();
            app.UseAuthorization();
            app.UseGrpcWeb();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapHealthChecks("/health");
                endpoints.MapGrpcService <BackendIntegrationService>().EnableGrpcWeb();
                endpoints.MapControllers();
                endpoints.MapBlazorHub();
                endpoints.MapFallbackToPage("/_Host");
                endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");
            });


            using (var serviceScope = serviceScopeFactory.CreateScope())
            {
                var jwtSettings = serviceScope.ServiceProvider.GetRequiredService <IOptions <JwtSettings> >();

                logger.LogDebug("Authentication settings: SignIn valid: [{AccessTokenValid}] RefreshToken valid: [{RefreshTokenValid}] Refresh every: [{RefreshInterval}]",
                                jwtSettings.Value.AccessTokenValidDuration,
                                jwtSettings.Value.RefreshTokenValidDuration,
                                jwtSettings.Value.RefreshAccessTokenInterval);

                VerifyAuthenticationSettings(logger, jwtSettings.Value);

                using (var context = serviceScope.ServiceProvider.GetRequiredService <ApplicationDbContext>())
                {
                    var configuration     = serviceScope.ServiceProvider.GetRequiredService <IConfiguration>();
                    var connectionBuilder =
                        new SqlConnectionStringBuilder(configuration.GetConnectionString("DefaultConnection"));

                    if (Configuration.GetValue <bool>("ApplicationSettings:DropDatabaseOnStart"))
                    {
                        logger.LogWarning("Dropping database because of settings value {Value}", "ApplicationSettings:DropDatabaseOnStart");
                        context.Database.EnsureDeleted();
                    }

                    logger.LogInformation("Launching database as environment {Environment} with data source {@DataSource} and database {@Database}", env.EnvironmentName, connectionBuilder.DataSource, connectionBuilder.InitialCatalog);
                    if (!context.Database.CanConnect())
                    {
                        logger.LogInformation("Database does not exist yet - Creating database through migrations");

                        context.Database.Migrate();
                    }
                    else
                    {
                        if (context.Database.GetPendingMigrations().Any())
                        {
                            logger.LogInformation("Applying database migration");

                            context.Database.Migrate();

                            logger.LogInformation("Applying database migration done");
                        }
                        else
                        {
                            logger.LogDebug("No pending migrations found");
                        }
                    }
                }
            }

            applicationStateTransmitter.NotifyConfigurationDone();

            logger.LogInformation("Configuration done");
        }
 public DesktopIntegrationLauncherService(ILogger <DesktopIntegrationLauncherService> logger, IIntegrationApplicationLocator integrationApplicationLocator, ApplicationStateTransmitter applicationStateTransmitter)
 {
     _logger = logger;
     _integrationApplicationLocator = integrationApplicationLocator;
     _applicationStateTransmitter   = applicationStateTransmitter;
 }