//Mamages when a player loads their last save from the database
        public IActionResult OnLoad()
        {
            //Create new instance of GameBusinessService
            GameDataBusinessService gameDataBusiness = new GameDataBusinessService();

            //Use session to grab user
            int userID = (int)HttpContext.Session.GetInt32("userID");

            //Load the game
            Game gameObject = gameDataBusiness.LoadGame(userID);

            //Using seralization and object casting convert the boardstring
            //from the database into a game board object
            gameBoard = JsonConvert.DeserializeObject <Board>(gameObject.boardString);

            //Debug
            Debug.WriteLine(JsonConvert.DeserializeObject <Board>(gameObject.boardString));

            //Create game view model
            GameBoardViewModel game = new GameBoardViewModel();

            game.GameBoard     = gameBoard;
            game.UserName      = userName;
            game.EndGame       = gameStatus;
            game.Mine          = gameBoard.GrabCellFromGrid(1);
            game.numOfClick    = gameObject.numOfClicks;
            game.loadedSeconds = gameObject.seconds;

            //Debug the seconds
            Debug.WriteLine(game.loadedSeconds);

            return(PartialView("InProgressGame", game));
        }
        /// <summary>
        /// Loads one save using gameStateID
        /// </summary>
        /// <param name="gameStateID"></param>
        /// <returns></returns>
        public IActionResult LoadOneGame(int gameStateID)
        {
            ///Create new instance of GameBusinessService
            GameDataBusinessService gameDataBusiness = new GameDataBusinessService();

            //Use session to grab user
            //If the session is not empty - user logged in
            if (!string.IsNullOrEmpty(HttpContext.Session.GetString("username")))
            {
                //Grab their username
                userName = HttpContext.Session.GetString("username");
            }

            //Load the game
            Game gameObject = gameDataBusiness.LoadOneGame(Convert.ToInt32(gameStateID));

            //Using seralization and object casting convert the boardstring
            //from the database into a game board object
            gameBoard = JsonConvert.DeserializeObject <Board>(gameObject.boardString);

            //Create game view model
            GameBoardViewModel game = new GameBoardViewModel();

            game.GameBoard     = gameBoard;
            game.UserName      = userName;
            game.EndGame       = gameStatus;
            game.Mine          = gameBoard.GrabCellFromGrid(1);
            game.numOfClick    = gameObject.numOfClicks;
            game.loadedSeconds = gameObject.seconds;


            return(View("LoadedGame", game));
        }
        //Manages when player saves game
        public IActionResult OnSave(int seconds)
        {
            //Using JSON object seralization - turn our gameboard into a string for database
            string gameString = JsonConvert.SerializeObject(gameBoard);

            //Create new instance of GameBusinessService
            GameDataBusinessService gameBusiness = new GameDataBusinessService();

            //Use session to grab user
            int userID = (int)HttpContext.Session.GetInt32("userID");

            //Make an instance of Game data object
            Game gameDataObj = new(gameString, seconds, clicks, userID);

            //Save game
            bool success = gameBusiness.SaveGame(gameDataObj);

            //Create game board view model
            GameBoardViewModel game = new GameBoardViewModel(gameBoard, gameBoard.GrabCellFromGrid(1));

            game.UserName   = userName;
            game.EndGame    = gameStatus;
            game.numOfClick = clicks;

            return(PartialView("InProgressGame", game));
        }
        public IActionResult Index()
        {
            GameDataBusinessService gameData = new GameDataBusinessService();
            //Grab userID from session
            int userID = (int)HttpContext.Session.GetInt32("userID");

            return(View(gameData.AllGamesForUser(userID)));
        }
        public IActionResult Delete(int gameStateID)
        {
            GameDataBusinessService gameData = new GameDataBusinessService();

            gameData.DeleteSave(gameStateID);
            int userID = (int)HttpContext.Session.GetInt32("userID");

            return(View("Index", gameData.AllGamesForUser(userID)));
        }