private void SetExhibitingArt(Player player)
 {
     var result = new List<PlayerArtViewModel>();
     var artList = player.Art.Where(a => a.IsSold == false);
     foreach(GameArt art in artList)
     {
         result.Add(new PlayerArtViewModel(art));
     }
     ExhibitingArt = result;
 }
        public PlayerBoardViewModel(string userName, Player player)
        {
            Player = player;
            ComissionDisplayString = player.Commission != null ?
                player.Commission.ArtType.ToString() + " " + player.Commission.Category.ToString() : "No Commissioned Art";

            SetUnemplayedAssitants(userName, player);
            SetExhibitingArt(player);
            SetReputationLocations(userName, player);
            ContractView = new PlayerContractsViewModel(userName, player);
        }
 private void SetContracts(Player player)
 {
     var result = new List<PlayerContractViewModel>();
     foreach ( GameContractLocation location in LocationOrder )
     {
         var contract = player.GetContractAtLocation(location);
         var dto = new PlayerContractViewModel(contract, location);
         result.Add(dto);
     }
     Contracts = result;
 }
        public PlayerContractsViewModel(string userName, Player player)
        {
            IsPlayerBoardOfActivePlayer = player.Id == player.Game.CurrentPlayer.Id;
            IsActivePlayer = FormHelper.IsActivePlayer(userName, player.Game);
            IsValidActionState = player.Game.CurrentTurn.CurrentAction.State == GameActionState.ContractDraft;

            Player = player;
            State = GameActionState.ContractToPlayerBoard;

            SetContracts(player);
        }
        public ReputationTileLocationViewModel(string userName, Player player, GameReputationTileLocation location)
        {
            IsPlayerBoardOfActivePlayer = player.Id == player.Game.CurrentPlayer.Id;
            IsActivePlayer = FormHelper.IsActivePlayer(userName, player.Game);
            IsValidActionState = player.Game.CurrentTurn.CurrentAction.State == GameActionState.Reputation;

            Player = player;
            State = GameActionState.ReputationToBoard;
            Location = location;
            Tile = player.Tiles.FirstOrDefault(t => t.Column == location);
            BonusClass = IconCss.BonusClass[IconCss.PlayerReputationLocationToBonus[location]];
        }
        public UnemployedAssistantViewModel(string userName, Player player, int index )
        {
            IsPlayerBoardOfActivePlayer = player.Id == player.Game.CurrentPlayer.Id;
            IsActivePlayer = FormHelper.IsActivePlayer(userName, player.Game);
            IsValidActionState = player.Game.CurrentTurn.CurrentAction.State == GameActionState.MediaCenter;
            ActionLocation = index.ToString();

            Player = player;
            State = GameActionState.Hire;

            AssistantIndex = index;
            AssistantCost = AssistantManager.GetAssistantCostByIndex(index);
            IsAvailable = player.Assistants.Count - 2 <= index;
            SetAssistantCssClass(IsAvailable, player);
        }
 private void SetAssistantCssClass(bool isAvailable, Player player)
 {
     if(isAvailable)
     {
         AssistantCssClass = "player-assistant-" + player.Color;
     }
     else
     {
         AssistantCssClass = "";
     }
 }
 private void SetReputationLocations(string userName, Player player)
 {
     var result = new List<ReputationTileLocationViewModel>();
     foreach(GameReputationTileLocation location in TopRowLocations)
     {
         result.Add(new ReputationTileLocationViewModel(userName, player, location));
     }
     TopRowTileLocationModels = result;
     result = new List<ReputationTileLocationViewModel>();
     foreach (GameReputationTileLocation location in BottomRowLocations)
     {
         result.Add(new ReputationTileLocationViewModel(userName, player, location));
     }
     BottomRowTileLocationModels = result;
 }
 private void SetUnemplayedAssitants(string userName, Player player)
 {
     var result = new List<UnemployedAssistantViewModel>();
     for(int i = 0; i < 8; i++)
     {
         result.Add(new UnemployedAssistantViewModel(userName, player, i));
     }
     UnemployedAssistants = result;
 }