private ISimulacaoCallPreFlop SimulaJogosUmaMao(ISimulacaoCallPreFlop simulacao, ICroupier croupier, IJogador jogador)
        {
            for (int i = 0; i < this.QuantidadeJogosSimuladosPretendidos; i++)
            {
                if (!croupier.HaParticipantesParaJogar())
                {
                    break;
                }

                croupier.ExecutarNovaPartidaCompleta();
                simulacao.QuantidadeJogosSimulados++;
                IPartida p = jogador.Historico.Last();

                if (p.JogadorGanhador == Enuns.VencedorPartida.Jogador)
                {
                    simulacao.QuantidadeJogosGanhos++;
                }
                else if (p.JogadorGanhador == Enuns.VencedorPartida.Banca)
                {
                    simulacao.QuantidadeJogosPerdidos++;
                }
                else
                {
                    simulacao.QuantidadeJogosEmpatados++;
                }
            }

            simulacao.StackFinal = jogador.JogadorStack.Stack;

            return(simulacao);
        }
        //private static int GetNextValSequence() { }

        private static string ToInsertQuery(ISimulacaoCallPreFlop simulacaoCallPreFlop)
        {
            int sequence_id_grupo = 0;

            StringBuilder strBuilder = new StringBuilder()
                                       .Append("INSERT INTO probabilidade.simulacao_call_pre_flop (" +
                                               "id_grupo," + Environment.NewLine +
                                               "qtd_jogos_simulados, " + Environment.NewLine +
                                               "qtd_jogos_simulados_pretendidos, " + Environment.NewLine +
                                               "qtd_jogos_ganhos, " + Environment.NewLine +
                                               "qtd_jogos_perdidos, " + Environment.NewLine +
                                               "qtd_jogos_empatados, " + Environment.NewLine +
                                               "raise_flop, " + Environment.NewLine +
                                               "raise_flop_turn, " + Environment.NewLine +
                                               "val_stack_inicial, " + Environment.NewLine +
                                               "val_stack_final, " + Environment.NewLine +
                                               "id_mao_duas_cartas)"
                                               );

            strBuilder.AppendFormat("VALUES (" +
                                    "{0}," + Environment.NewLine +
                                    "{1}," + Environment.NewLine +
                                    "{2}," + Environment.NewLine +
                                    "{3}," + Environment.NewLine +
                                    "{4}," + Environment.NewLine +
                                    "{5}," + Environment.NewLine +
                                    "{6}," + Environment.NewLine +
                                    "{7}," + Environment.NewLine +
                                    "{8}," + Environment.NewLine +
                                    "{9}," + Environment.NewLine +
                                    "{10}" +
                                    ")",
                                    simulacaoCallPreFlop.IdGrupo,
                                    simulacaoCallPreFlop.QuantidadeJogosSimulados,
                                    simulacaoCallPreFlop.QuantidadeJogosSimuladosPretendidos,
                                    simulacaoCallPreFlop.QuantidadeJogosGanhos,
                                    simulacaoCallPreFlop.QuantidadeJogosPerdidos,
                                    simulacaoCallPreFlop.QuantidadeJogosEmpatados,
                                    simulacaoCallPreFlop.RaiseFlop.ToString(),
                                    simulacaoCallPreFlop.RaiseFlopTurn.ToString(),
                                    simulacaoCallPreFlop.StackInicial,
                                    simulacaoCallPreFlop.StackFinal,
                                    simulacaoCallPreFlop.ProbabilidadeMaoInicial.Id
                                    );

            return(strBuilder.ToString());
        }
        public static void Persiste(ISimulacaoCallPreFlop simulacaoCallPreFlop)
        {
            DBConnect.AbreConexaoSeNaoEstiverAberta();

            try
            {
                IDbCommand command = DBConnect.Connection.CreateCommand();
                command.CommandText = SimulacaoCallPreFlopProbabilidadeContext.ToInsertQuery(simulacaoCallPreFlop);
                command.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                DBConnect.FecharConexao();
            }
        }