public ActionResult Configure() { GameAdminVM vm = new GameAdminVM(); var globalConf = db.Configurations.Find(ConfigurationKeys.GlobalGameConfiguration.GetName()); var planetConf = db.Configurations.Find(ConfigurationKeys.GlobalPlanetConfiguration.GetName()); return(View(vm)); }
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)); } }
private ActionResult ReturnView(GameAdminVM vm) { var globalConf = JsonConvert.DeserializeObject <GlobalGameConfiguration>(db.Configurations.Find(ConfigurationKeys.GlobalGameConfiguration.GetName()).Data); var planetConf = JsonConvert.DeserializeObject <GlobalPlanetConfiguration>(db.Configurations.Find(ConfigurationKeys.GlobalPlanetConfiguration.GetName()).Data); vm.GlobalGameConfiguration = globalConf; vm.GlobalPlanetConfiguration = planetConf; vm.Resources = ConfigurationsUtil.Instance.Configuration.Resources; ClassUtil.IdsUpdater(vm.Resources); vm.Buildings = ConfigurationsUtil.Instance.Configuration.ResourceGenerators.ToList <Building>(); ClassUtil.IdsUpdater(vm.Buildings); return(View(vm)); }
public ActionResult Configure() { GameAdminVM vm = new GameAdminVM(); var resGlobalConf = db.Configurations.Find(ConfigurationKeys.GlobalGameConfiguration.GetName()); var resPlanetConf = db.Configurations.Find(ConfigurationKeys.GlobalPlanetConfiguration.GetName()); GlobalGameConfiguration globalConf = new GlobalGameConfiguration(); GlobalPlanetConfiguration planetConf = new GlobalPlanetConfiguration(); if (resGlobalConf != null && resPlanetConf != null) { globalConf = JsonConvert.DeserializeObject <GlobalGameConfiguration>(resGlobalConf.Data); planetConf = JsonConvert.DeserializeObject <GlobalPlanetConfiguration>(resPlanetConf.Data); } else { resGlobalConf = new Configuration() { Key = ConfigurationKeys.GlobalGameConfiguration.GetName(), Data = JsonConvert.SerializeObject(vm.GlobalGameConfiguration) }; resPlanetConf = new Configuration() { Key = ConfigurationKeys.GlobalPlanetConfiguration.GetName(), Data = JsonConvert.SerializeObject(vm.GlobalPlanetConfiguration) }; db.Configurations.Add(resGlobalConf); db.Configurations.Add(resPlanetConf); db.SaveChanges(); } vm.GlobalGameConfiguration = globalConf; vm.GlobalPlanetConfiguration = planetConf; vm.Resources = ConfigurationsUtil.Instance.Configuration.Resources; ClassUtil.IdsUpdater(vm.Resources); vm.Buildings = ConfigurationsUtil.Instance.Configuration.ResourceGenerators.ToList <Building>(); ClassUtil.IdsUpdater(vm.Buildings); return(View(vm)); }