public IActionResult CreateGame() { var newGame = new CreateGameVM(); newGame.StartTime = DateTime.Now; return(View(newGame)); }
public ActionResult GameLobby() { CreateGameVM viewModel = new CreateGameVM { ColorSelect = ColorSelect.Auto }; return(View(viewModel)); }
public ActionResult CreateGame(CreateGameVM game) { if (ModelState.IsValid) { Game newGame = new Game(); newGame.Id = Guid.NewGuid(); newGame.HostId = WebSecurity.CurrentUserId; newGame.GameState = GameState.Waiting; newGame.DateCreated = DateTime.Now; newGame.Turn = Turn.White; newGame.Description = game.Description; newGame.WhiteCanCastleKingSide = true; newGame.WhiteCanCastleQueenSide = true; newGame.BlackCanCastleKingSide = true; newGame.BlackCanCastleQueenSide = true; newGame.WhiteKingPosition = BoardConstants.INITIAL_WHITE_KING_POSITION; newGame.BlackKingPosition = BoardConstants.INITIAL_BLACK_KING_POSITION; newGame.BoardContent = BoardConstants.INITIAL_BOARD; if (game.ColorSelect == ColorSelect.White) { newGame.WhitePlayerId = WebSecurity.CurrentUserId; } else if (game.ColorSelect == ColorSelect.Black) { newGame.BlackPlayerId = WebSecurity.CurrentUserId; } else { int r = rand.Next(0, 2); if (r == 0) { newGame.WhitePlayerId = WebSecurity.CurrentUserId; } else { newGame.BlackPlayerId = WebSecurity.CurrentUserId; } } db.Games.Insert(newGame); db.Save(); gameLobbyHubContext.Clients.All.addGame(newGame.Id.ToString(), newGame.HostId, newGame.Description); return(RedirectToAction("Game", new { id = newGame.Id })); } else { return(View("GameLobby")); } }
public async Task <IActionResult> CreateGame(CreateGameVM createGameVM) { if (!ModelState.IsValid) { return(PartialView("_CreateGame", createGameVM)); } int id = await gameManageService.OpenGameAsync(createGameVM, HttpContext.User.Identity.Name); if (id == -1) { ModelState.AddModelError("", "Name is already taken!"); return(PartialView("_CreateGame", createGameVM)); } return(PartialView("_GameCreated", id)); }
public async Task <int> OpenGameAsync(CreateGameVM createGameVM, string userName) { var user = await userCrudService.GetByLoginAsync(userName); await gamesCrudService.CreateAsync(createGameVM.Name, user); var game = await gamesCrudService.GetGameAsync(createGameVM.Name); if (!game.IsAlive()) { return(-1); } await UpdateTags(game.Data.Id, createGameVM.Tags); await OnGameCreated(game); return(game.Data.Id); }
//Create a new Game public int CreateGame(CreateGameVM createGameVm, string userId) { var fieldId = ListFields().Where(o => o.Name == createGameVm.Field).Select(o => o.Id).SingleOrDefault(); SqlConnection myConnection = new SqlConnection(); myConnection.ConnectionString = connectionString; try { myConnection.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = myConnection; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "Create_Game"; cmd.Parameters.Add(new SqlParameter("@Description", createGameVm.Description)); cmd.Parameters.Add(new SqlParameter("@Field", fieldId)); cmd.Parameters.Add(new SqlParameter("@IsActive", createGameVm.IsActive)); cmd.Parameters.Add(new SqlParameter("@IsPublic", createGameVm.IsPublic)); cmd.Parameters.Add(new SqlParameter("@MaxSlots", createGameVm.MaxSlots)); cmd.Parameters.Add(new SqlParameter("@Owner", userId)); cmd.Parameters.Add(new SqlParameter("@StartTime", createGameVm.StartTime)); cmd.ExecuteNonQuery(); } catch (Exception e) { throw e; } finally { myConnection.Close(); } return(GetAllGames().Last().Id); }