public void OnActionExecuting(ActionExecutingContext filterContext) { var session = filterContext.HttpContext.Session; var currentGameState = session[GameController.GAME_STATE]; if (currentGameState == null || currentGameState.GetType() != typeof(GameState)) { GameSettingsVM newGameConfig = session[HomeController.GAME_CONFIG] as GameSettingsVM; bool isConfigValid; try { var validationCtx = new ValidationContext(newGameConfig, serviceProvider: null, items: null); isConfigValid = Validator.TryValidateObject(newGameConfig, validationCtx, null, true); } catch { filterContext.Result = GenerateRedirectUrl("BadRequest", "Error"); return; } if (!isConfigValid) { filterContext.Result = GenerateRedirectUrl("BadRequest", "Error"); return; } currentGameState = new GameState(newGameConfig); session[GameController.GAME_STATE] = currentGameState; } }
public GameSettingsVM GetSettings() { var gs = new GameSettingsVM(); foreach (var item in gs.GetType().GetTypeInfo().DeclaredProperties) { item.SetValue(gs, item.GetValue(this)); } return(gs); }
public ActionResult Index(GameSettingsVM formData) { if (ModelState.IsValid) { GameConfig = formData; return(RedirectToAction("Index", "Game")); } else { return(Index()); } }
public static async void Put(GameSettingsVM s) { try { var files = await ApplicationData.Current.LocalFolder.GetFilesAsync(CommonFileQuery.DefaultQuery); var file = files.FirstOrDefault(f => f.Name == "lastSettings"); if (file == null) { file = await ApplicationData.Current.LocalFolder.CreateFileAsync("lastSettings"); } await FileIO.WriteTextAsync(file, Serialize(s)); } catch { } }