public static void UseAdminSeeding(this IApplicationBuilder app)
        {
            using (var serviceScope = app.ApplicationServices.CreateScope())
            {
                var adminSeeder = new AdminSeeder(serviceScope.ServiceProvider);

                adminSeeder.Seed();
            }
        }
예제 #2
0
        public static void SeedDatabase(this IServiceProvider serviceProvider, string password = "******", string emailDomain = "ssrd.io",
                                        string adminUserName = "******", string adminPassword = "******")
        {
            SystemEntitySeeder systemEntitySeeder = serviceProvider.GetRequiredService <SystemEntitySeeder>();
            AdminSeeder        adminSeeder        = serviceProvider.GetRequiredService <AdminSeeder>();
            UserSeeder         userSeeder         = serviceProvider.GetRequiredService <UserSeeder>();

            Task.WaitAll(systemEntitySeeder.SeedIdentityUI());
            Task.WaitAll(adminSeeder.SeedIdentityAdmin(adminUserName, adminPassword));
            Task.WaitAll(userSeeder.Seed(emailDomain, password));
        }
예제 #3
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, AdminSeeder seeder)
        {
            using (var serviceScope = app.ApplicationServices.GetService <IServiceScopeFactory>().CreateScope())
            {
                var context = serviceScope.ServiceProvider.GetRequiredService <RentCarWebContext>();
                context.Database.EnsureCreated();
            }

            seeder.SeedAdminUser();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            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.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
            });
            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseSpaStaticFiles();

            app.UseRouting();

            app.UseAuthentication();
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller}/{action=Index}/{id?}");
                endpoints.MapRazorPages();
            });

            app.UseSpa(spa =>
            {
                spa.Options.SourcePath = "ClientApp";

                if (env.IsDevelopment())
                {
                    spa.UseReactDevelopmentServer(npmScript: "start");
                }
            });
        }
예제 #4
0
        public static void ApplyMigrations(this IApplicationBuilder app)
        {
            using var services = app.ApplicationServices.CreateScope();

            var dbContext   = services.ServiceProvider.GetService <ApplicationDbContext>();
            var userManager = services.ServiceProvider.GetService <UserManager <User> >();

            dbContext.Database.Migrate();
            RolePermissionSeeder.Run(dbContext);
            AdminSeeder.RunAsync(userManager).GetAwaiter().GetResult();
            JobTypeSeeder.Run(dbContext);
            JobCategorySeeder.Run(dbContext);
        }
예제 #5
0
        public static void Main(string[] args)
        {
            var host = CreateWebHostBuilder(args).Build();

            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;

                var context = services.GetRequiredService <ApplicationDbContext>();
                AdminSeeder.SeedDatabase(context, services).Wait();
                CategorySeeder.SeedDatabase(context).Wait();
                ProductSeeder.SeedDatabase(context).Wait();
            }

            Directory.SetCurrentDirectory(AppContext.BaseDirectory);

            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, UserManager <UserEntityModel> userManager)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/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.UseSwagger();
            app.UseSwaggerUI(setupAction =>
            {
                setupAction.SwaggerEndpoint("/swagger/MiniBankSpecification/swagger.json", "Mini Bank");
            });
            app.UseStaticFiles();
            app.UseCookiePolicy();
            app.UseAuthentication();

            //app.UseRequestResponseLoggerMiddleware();

            app.UseSignalR(routes =>
            {
                routes.MapHub <ChatHub>("/chatHub");
            });

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

                routes.MapRoute(
                    name: "Identity",
                    template: "{area:exists}/{controller=Account}/{action=Login}");
            });

            AdminSeeder.SeedAdmin(userManager);
        }
예제 #7
0
        /// <summary>
        /// Seeds admin
        /// </summary>
        /// <param name="serviceProvider"></param>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        /// <param name="roles"></param>
        public static void SeedAdmin(this IServiceProvider serviceProvider, string userName, string password, List <string> roles)
        {
            AdminSeeder adminSeeder = serviceProvider.GetRequiredService <AdminSeeder>();

            Task.WaitAll(adminSeeder.Seed(userName, password, roles));
        }
예제 #8
0
        /// <summary>
        /// Seeds identityAdmin
        /// </summary>
        /// <param name="serviceProvider"></param>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        private static void SeedIdentityAdmin(this IServiceProvider serviceProvider, string userName, string password)
        {
            AdminSeeder adminSeeder = serviceProvider.GetRequiredService <AdminSeeder>();

            Task.WaitAll(adminSeeder.SeedIdentityAdmin(userName, password));
        }