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."); } }