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;
            }
        }
Exemple #2
0
        public GameSettingsVM GetSettings()
        {
            var gs = new GameSettingsVM();

            foreach (var item in gs.GetType().GetTypeInfo().DeclaredProperties)
            {
                item.SetValue(gs, item.GetValue(this));
            }
            return(gs);
        }
Exemple #3
0
 public ActionResult Index(GameSettingsVM formData)
 {
     if (ModelState.IsValid)
     {
         GameConfig = formData;
         return(RedirectToAction("Index", "Game"));
     }
     else
     {
         return(Index());
     }
 }
Exemple #4
0
        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
            {
            }
        }