private void HandlePlayerDecision(Player player, PlayerDecisionResponse decision)
            {
                switch (decision.Type)
                {
                    case DecisionType.DisconnectAndFold:
                    case DecisionType.TimeOutAndFold:
                    case DecisionType.InvalidAndFold:
                    case DecisionType.Fold:
                        player.State = PlayerState.Folded;
                        break;

                    case DecisionType.Check:
                        player.State = PlayerState.Playing;
                        break;

                    case DecisionType.Call:
                        {
                            double callAmount = GetAmountPlayerRequiresToCall(player);
                            Table.PotManager.AddToPot(player, player.HandOverChips(callAmount));
                            player.State = PlayerState.Playing;
                            break;
                        }

                    case DecisionType.Raise:
                        {
                            Table.PotManager.AddToPot(player, player.HandOverChips(decision.RaiseAmount));
                            player.State = PlayerState.Playing;
                            break;
                        }

                    case DecisionType.AllIn:
                        {
                            Table.PotManager.AddToPot(player, player.AllIn());
                            player.State = PlayerState.AllIn;
                            break;
                        }

                    default:
                        throw new InvalidOperationException("An unknown DecisionType was encountered.");
                }
            }