public static void EnsureSeedDataForContext(this PersonInfoContext context) { if (context.AgeGroups.Any()) { return; } // init seed data var AgeGroups = new List <AgeGroup>() { new AgeGroup() { MinAge = null, MaxAge = 2, Description = "Toddler" }, new AgeGroup() { MinAge = 2, MaxAge = 14, Description = "Child" }, new AgeGroup() { MinAge = 14, MaxAge = 20, Description = "Teenager" }, new AgeGroup() { MinAge = 20, MaxAge = 25, Description = "Early twenties" }, new AgeGroup() { MinAge = 25, MaxAge = 30, Description = "Almost thirty" }, new AgeGroup() { MinAge = 30, MaxAge = 50, Description = "Very adult" }, new AgeGroup() { MinAge = 50, MaxAge = 70, Description = "Kinda old" }, new AgeGroup() { MinAge = 70, MaxAge = 99, Description = "Old" }, new AgeGroup() { MinAge = 99, MaxAge = 110, Description = "Very Old" }, new AgeGroup() { MinAge = 110, MaxAge = 199, Description = "Crazy ancient" }, new AgeGroup() { MinAge = 199, MaxAge = 4999, Description = "Vampire" }, new AgeGroup() { MinAge = 4999, MaxAge = null, Description = "Kauri tree" }, }; context.AgeGroups.AddRange(AgeGroups); context.SaveChanges(); }
// 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, PersonInfoContext personInfoContext) { loggerFactory.AddConsole(); /* DB Context calls this method to seed the Master data in the related tables */ personInfoContext.EnsureSeedDataForContext(); /* For the Http Status code pages */ app.UseStatusCodePages(); AutoMapper.Mapper.Initialize(cfg => { cfg.CreateMap <Entities.Person, Models.PersonDto>(); }); // Shows UseCors with CorsPolicyBuilder. app.UseCors(builder => { builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader(); }); app.UseMvc(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } }