public GameSession Add(string name, GameSessionStates state, Player creator)
        {
            var gameField = new GameField();

            var cells = new List <Cell>();

            for (int i = 0; i < 9; i++)
            {
                cells.Add(new Cell()
                {
                    PlaceId = i + 1, CellState = Enums.CellState.Empty
                });
            }

            gameField.Cells = cells;

            var gameSession = new GameSession()
            {
                Id             = Guid.NewGuid(),
                Name           = name,
                CountOfPlayers = 1,
                GameField      = gameField,
                Players        = new List <Player>()
                {
                    creator
                },
                State = state
            };

            _gameSessionRepository.Add(gameSession);

            return(gameSession);
        }
Пример #2
0
        private SessionCookieData CreateSession(int gameId, DateTime now)
        {
            var sessionCookieData = new SessionCookieData
            {
                GameId              = gameId,
                StartTime           = now,
                TotalPenaltySeconds = 0,
                LastResponseCheck   = DateTime.MinValue
            };
            var gameSession = new GameSession(sessionCookieData.Id)
            {
                StartTime           = sessionCookieData.StartTime,
                TotalPenaltySeconds = sessionCookieData.TotalPenaltySeconds,
                GameId = gameId
            };

            var ipAddressDetails =
                IpAddressHelper.GetIpAddressDetails(HttpContext.Connection.RemoteIpAddress.ToString());

            gameSession.IpAddressDetails = ipAddressDetails;
            _gameSessionRepository.Add(gameSession);
            return(sessionCookieData);
        }