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));
            }
        }