Пример #1
0
        public void StopGame(Game game, DateTime recalcTime)
        {
            Check.Require(game.GameState == GameStates.Started, String.Format(
                              "Невозможно остановить игру, когда она находится в режиме {0}.",
                              Enum.GetName(typeof(GameStates), game.GameState))
                          );

            // Останавливаем демона
            if (gameDemon != null)
            {
                gameDemon.Stop();
                gameDemon = null;
            }

            // Останавливаем игру
            game.GameState = GameStates.Finished;

            // Для каждой команды устанавливаем время окончания игры
            foreach (Team team in game.Teams)
            {
                if (team.TeamGameState != null && team.TeamGameState.GameDoneTime == null)
                {
                    if (team.TeamGameState.ActiveTaskState != null)
                    {
                        taskService.CloseTaskForTeam(team.TeamGameState.ActiveTaskState, TeamTaskStateFlag.Overtime, recalcTime);
                    }

                    team.TeamGameState.GameDoneTime = recalcTime;
                }
            }
        }
Пример #2
0
 private IGameDemon GetGameDemon(int gameId)
 {
     if (gameDemon == null)
     {
         gameDemon = GameDemon.GetInstance(new RecalcGameStateService(gameId, gameRepository, this));
     }
     return(gameDemon);
 }
Пример #3
0
        public GameService(
            IRepository<Game> gameRepository,
            IRepository<Team> teamRepository,
            IRepository<TeamGameState> teamGameStateRepository,
            ITaskService taskService,
            IGameDemon gameDemon)
            : this(gameRepository, teamRepository, teamGameStateRepository, taskService)
        {
            Check.Require(gameDemon != null, "gameDemon may not be null");

            this.gameDemon = gameDemon;
        }
Пример #4
0
 private IGameDemon GetGameDemon(int gameId)
 {
     if (gameDemon == null)
         gameDemon = GameDemon.GetInstance(new RecalcGameStateService(gameId, gameRepository, this));
     return gameDemon;
 }
Пример #5
0
        public void StopGame(Game game, DateTime recalcTime)
        {
            Check.Require(game.GameState == GameStates.Started, String.Format(
                    "Невозможно остановить игру, когда она находится в режиме {0}.",
                    Enum.GetName(typeof(GameStates), game.GameState))
                );

            // Останавливаем демона
            if (gameDemon != null)
            {
                gameDemon.Stop();
                gameDemon = null;
            }

            // Останавливаем игру
            game.GameState = GameStates.Finished;

            // Для каждой команды устанавливаем время окончания игры
            foreach (Team team in game.Teams)
            {
                if (team.TeamGameState != null && team.TeamGameState.GameDoneTime == null)
                {
                    if (team.TeamGameState.ActiveTaskState != null)
                    {
                        taskService.CloseTaskForTeam(team.TeamGameState.ActiveTaskState, TeamTaskStateFlag.Overtime, recalcTime);
                    }

                    team.TeamGameState.GameDoneTime = recalcTime;
                }
            }
        }