public SalesOfficeViewModel(string userName, Game game)
        {
            IsActivePlayer = FormHelper.IsActivePlayer(userName, game);

            var actionManager = new ActionContextInvoker(game);
            DrawIsValidActionState = actionManager.IsValidTransition(GameActionState.ContractDraw);
            DraftIsValidActionState = actionManager.IsValidTransition(GameActionState.ContractDraft);

            Game = game;
            DrawState = GameActionState.ContractDraw;

            AllContracts = game.GetContractDecks();
            DrawCount = AllContracts[GameContractLocation.DrawDeck].Count;

            SetDraftContractModels(AllContracts);
        }
 private bool ValidateSpace(Game game, PlayerLocation location)
 {
     var state = (GameActionState)Enum.Parse(typeof(GameActionState), location.ToString());
     var action = new GameAction { State = state, Location = game.CurrentTurn.CurrentAction.Location };
     var invoker = new ActionContextInvoker(game);
     return invoker.IsValidTransition(action);
 }