private static void InitializeDatabase(IWebHost host)
        {
            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;
                var logger   = services.GetRequiredService <ILogger <Program> >();

                try
                {
                    logger.LogInformation("Initializing the application database...");

                    var poTrackerDbContext = services.GetRequiredService <PoTrackerDbContext>();
                    PoTrackerDbInitializer.Initialize(poTrackerDbContext);

                    logger.LogInformation("Initializing the identity database...");
                    var context     = services.GetRequiredService <IdentityDbContext>();
                    var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
                    IdentityDbInitializer.Initialize(context, userManager);
                }
                catch (Exception ex)
                {
                    logger.LogError(ex, "An error occurred initializing the database");
                    throw;
                }
            }
        }
예제 #2
0
        public static void Main(string[] args)
        {
            var host = BuildWebHost(args);

            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;
                try
                {
                    var applicationDbContext           = services.GetRequiredService <ApplicationDbContext> ();
                    var applicationDbInitializerLogger = services.GetRequiredService <ILogger <ApplicationDbInitializer> > ();
                    ApplicationDbInitializer.Initialize(applicationDbContext, applicationDbInitializerLogger).Wait();

                    var userManager   = services.GetRequiredService <UserManager <ApplicationUser> > ();
                    var roleManager   = services.GetRequiredService <RoleManager <IdentityRole> > ();
                    var configuration = services.GetRequiredService <IConfiguration> ();
                    var identityDbInitializerLogger = services.GetRequiredService <ILogger <IdentityDbInitializer> > ();
                    IdentityDbInitializer.Initialize(userManager, roleManager, configuration).Wait();
                }
                catch (Exception ex)
                {
                    var logger = services.GetRequiredService <ILogger <Program> > ();
                    logger.LogError(ex, "An error occurred while seeding the database.");
                }
            }

            host.Run();
        }
예제 #3
0
        public static void Main(string[] args)
        {
            var host = BuildWebHost(args);

            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;
                try
                {
                    //var context = services.GetRequiredService<SchoolContext>();
                    //Creating a more complex data model - comment out line below
                    //This DbInitializer is for the School Data
                    //DbInitializer.Initialize(context);

                    //mwilliams:  Identity Framework - initial seed
                    //Note:  using the Secrets Manager tool for initial pwd
                    //       will need a reference to the Microsoft.Extensions.Configuration
                    //This DbInitializer is for user and roles within the Identity Framework
                    var config = host.Services.GetRequiredService <IConfiguration>();

                    var testUserPw = config["SeedUserPW"];//this is the password

                    //Call our Initializer
                    IdentityDbInitializer.Initialize(services, testUserPw).Wait();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            host.Run();
            //old code
            //BuildWebHost(args).Run();
        }
        public static void Main(string[] args)
        {
            try
            {
                var host = Host.CreateDefaultBuilder(args)
                           .UseContentRoot(Directory.GetCurrentDirectory())
                           .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder
                    .UseKestrel()
                    .UseIIS()
                    .UseStartup <Startup>();
                }).Build();

                //host.Run();
                //var host = CreateWebHostBuilder(args).Build();

                using (var scope = host.Services.CreateScope())
                {
                    var services = scope.ServiceProvider;
                    try
                    {
                        var context = services.GetRequiredService <ApplicationDbContext>();

                        var roleManager = services.GetRequiredService <RoleManager <IdentityRole> >();
                        var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();

                        IdentityDbInitializer.Initialize(context, userManager, roleManager);
                        DbInitializer.Initialize(context);
                    }
                    catch (Exception ex)
                    {
                        var logger = services.GetRequiredService <ILogger <Program> >();
                        logger.LogError(ex, "An error occurred while seeding the database.");
                    }
                }

                host.Run();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            //CreateWebHostBuilder(args).Build().Run();
        }
예제 #5
0
        public static void Main(string[] args)
        {
            var host = BuildWebHost(args);

            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;
                try
                {
                    IdentityDbInitializer.Initialize(services).Wait();
                    var context = services.GetRequiredService <AnimalContext>();
                    //DbInitializer.Initialize(context);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            //BuildWebHost(args).Run();
            host.Run();
        }
예제 #6
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, A2SPAContext context, IdentityContext identityContext)
        {
            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseBrowserLink();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }
            // Add a middleware used to validate access
            // tokens and protect the API endpoints.
            app.UseOAuthValidation();

            // Alternatively, you can also use the introspection middleware.
            // Using it is recommended if your resource server is in a
            // different application/separated from the authorization server.
            //
            // app.UseOAuthIntrospection(options =>
            // {
            //     options.AutomaticAuthenticate = true;
            //     options.AutomaticChallenge = true;
            //     options.Authority = "http://localhost:58795/";
            //     options.Audiences.Add("resource_server");
            //     options.ClientId = "resource_server";
            //     options.ClientSecret = "875sqd4s5d748z78z7ds1ff8zz8814ff88ed8ea4z4zzd";
            // });

            app.UseOpenIddict();

            app.UseDefaultFiles();
            app.UseStaticFiles();
            app.UseStaticFiles(new StaticFileOptions
            {
                FileProvider = new PhysicalFileProvider(Path.Combine(env.ContentRootPath, "node_modules")),
                RequestPath  = "/node_modules"
            });

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");

                // in case multiple SPAs required.
                routes.MapSpaFallbackRoute("spa-fallback", new { controller = "home", action = "index" });
            });

            if (env.IsDevelopment())
            {
                app.UseSwaggerUi(typeof(Startup).GetTypeInfo().Assembly, new SwaggerUiOwinSettings()
                {
                    OperationProcessors =
                    {
                        new OperationSecurityScopeProcessor("apikey")
                    },
                    DocumentProcessors =
                    {
                        new SecurityDefinitionAppender("apikey", new SwaggerSecurityScheme
                        {
                            Type = SwaggerSecuritySchemeType.ApiKey,
                            Name = "Authorization",
                            In   = SwaggerSecurityApiKeyLocation.Header
                        })
                    },
                    DefaultPropertyNameHandling = PropertyNameHandling.CamelCase
                });

                IdentityDbInitializer.Initialize(identityContext);
                DbInitializer.Initialize(context);
            }
        }