public async Task <ActionResult> OnPost() { if (FieldSize == "Back to Main Menu") { return(RedirectToPage("./MainMenu")); } if (ModelState.IsValid) { if (FieldSize == "Small Field") { GameOptions.Height = 9; GameOptions.Width = 9; GameOptions.Bombs = 10; } if (FieldSize == "Medium Field") { GameOptions.Height = 16; GameOptions.Width = 16; GameOptions.Bombs = 40; } if (FieldSize == "Large Field") { GameOptions.Height = 16; GameOptions.Width = 30; GameOptions.Bombs = 99; } if (GameOptions.Bombs > GameOptions.Height * GameOptions.Width - 1) { BombAmount = false; } foreach (GameSettings settings in _context.GameSettingses) { if (settings.GameName == GameOptions.GameName) { isCorrect = false; } } if (!isCorrect || !BombAmount) { return(RedirectToPage("./StartGame", new { correct = isCorrect, bombAmount = BombAmount })); } var game = new GameEngine.Game(GameOptions.Height, GameOptions.Width); game.PlaceBomb(GameOptions.Height, GameOptions.Width, GameOptions.Bombs); string gameCells = ""; foreach (CellState variable in game.GetBoard()) { gameCells += Convert.ToInt32(variable) + ","; } gameCells = gameCells.Remove(gameCells.Length - 1); var gameState = new GameSettings() { BoardWidth = GameOptions.Width, BoardHeight = GameOptions.Height, GameName = GameOptions.GameName, BombAmount = GameOptions.Bombs, GameState = gameCells }; _context.GameSettingses.Add(gameState); await _context.SaveChangesAsync(); return(RedirectToPage("./PlayGame", new { gameId = gameState.GameId })); } return(Page()); }