public ActionResult Configure(GameAdminVM vm) { if (ModelState.IsValid) { Configuration globalConf = new Configuration() { Key = ConfigurationKeys.GlobalGameConfiguration.GetName(), Data = JsonConvert.SerializeObject(vm.GlobalGameConfiguration) }; Configuration planetConf = new Configuration() { Key = ConfigurationKeys.GlobalPlanetConfiguration.GetName(), Data = JsonConvert.SerializeObject(vm.GlobalPlanetConfiguration) }; db.Configurations.Attach(globalConf); db.Configurations.Attach(planetConf); db.Entry(globalConf).State = EntityState.Modified; db.Entry(planetConf).State = EntityState.Modified; db.SaveChanges(); GameBuilder builder = new GameBuilder(); Universe universe = builder.AddGlobalGameConfiguration(vm.GlobalGameConfiguration).AddPlanetsOnSolarSystem(vm.GlobalPlanetConfiguration).BuildUniverse(); if (ValidationUtil.ValidateObject(universe)) { try { db.ClearDatabase(); db.Universes.Add(universe); db.SaveChanges(); } catch (DbEntityValidationException ex) { var error = ex.EntityValidationErrors.First().ValidationErrors.First(); Console.WriteLine("error : " + error.PropertyName); Console.WriteLine("message : " + error.ErrorMessage); this.ModelState.AddModelError(error.PropertyName, error.ErrorMessage); return(ReturnView(vm)); } } return(Redirect("/Home")); } else { return(ReturnView(vm)); } }