public IActionResult CreateGame()
        {
            var newGame = new CreateGameVM();

            newGame.StartTime = DateTime.Now;
            return(View(newGame));
        }
Пример #2
0
        public ActionResult GameLobby()
        {
            CreateGameVM viewModel = new CreateGameVM
            {
                ColorSelect = ColorSelect.Auto
            };

            return(View(viewModel));
        }
Пример #3
0
        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"));
            }
        }
Пример #4
0
        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));
        }
Пример #5
0
        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);
        }
Пример #6
0
        //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);
        }