private void cadastraPalpiteConcurso(int idConcurso, DezenaDuplaSena dezena) { var paramList = new DynamicParameters(); paramList.Add("@idConcurso", idConcurso); paramList.Add("@sorteio", dezena.Sorteio); paramList.Add("@dezena", dezena.Dezena); cn.Execute("sp_cadastraPalpiteDuplaSena", paramList, commandType: CommandType.StoredProcedure); }
internal List <DezenaDuplaSena> GetPalpiteProximoSorteio(int?idConcurso) { List <DezenaDuplaSena> numeros = new List <DezenaDuplaSena>(); using (cn) { using (IDataReader dr = cn.ExecuteReader("sp_palpiteProximoSorteioDuplaSena", new { @idConcurso = idConcurso }, commandType: CommandType.StoredProcedure)) { while (dr.Read()) { DezenaDuplaSena numero = new DezenaDuplaSena(); numero.Dezena = Convert.ToByte(dr["dezena"]); numero.Sorteio = Convert.ToByte(dr["sorteio"]); numeros.Add(numero); } } } return(numeros); }
public void GeraPalpiteProximoSorteio(int idConcurso) { int sorteiosAnteriores = 5; int quantidadePalpite = 40; Dictionary <byte, byte> numerosLoteria = new Dictionary <byte, byte>(DuplaSena.TotalNumerosLoteria); Dictionary <byte, byte> ultimosNumeros = _repository.GeraPalpiteProxSorteio(sorteiosAnteriores); for (byte i = 1; i <= DuplaSena.TotalNumerosLoteria; i++) { byte?value = ultimosNumeros.FirstOrDefault(n => n.Key == i).Value; numerosLoteria.Add(i, value == null ? (byte)0 : (byte)value); } var primeirosMenosSairam = numerosLoteria.OrderBy(n => n.Value).ToList().Take(quantidadePalpite); List <DezenaDuplaSena> palpite = new List <DezenaDuplaSena>(); while (palpite.Count != DuplaSena.QuantidadePadraoAposta) { int random = new System.Random().Next(0, quantidadePalpite); DezenaDuplaSena numero = new DezenaDuplaSena() { Dezena = primeirosMenosSairam.ElementAt(random).Key }; if (!palpite.Any(p => p.Dezena == numero.Dezena)) { palpite.Add(numero); } } for (int i = 0; i < palpite.Count; i++) { palpite[i].Sorteio = i % 2 == 0 ? (byte)1 : (byte)2; } _repository.InserirPalpite(idConcurso, palpite); }
private Concurso buscar(int?id) { DuplaSena con = new DuplaSena(); try { using (cn) { cn.Open(); using (IDataReader dr = cn.ExecuteReader("sp_buscaConcursoDuplaSena", new { @IdConcurso = id }, commandType: CommandType.StoredProcedure)) { if (dr.Read()) { con.ProximoConcurso = new ProximoConcurso(); con.ID = Convert.ToInt32(dr["idConcurso"]); con.Data = Convert.ToDateTime(dr["data"]); con.Cidade = Convert.ToString(dr["cidade"]); con.Local = Convert.ToString(dr["local"]); con.ValorAcumulado = Convert.ToDecimal(dr["valorAcumulado"]); con.ArrecadacaoTotal = Convert.ToDecimal(dr["arrecadacaoTotal"]); con.ProximoConcurso.Data = Convert.ToDateTime(dr["proximoConcursoData"]); con.ProximoConcurso.ValorEstimado = Convert.ToDecimal(dr["proximoConcursoValorEstimado"]); con.EspecialValorAcumulado = dr["especialValorAcumulado"] == DBNull.Value ? (decimal?)null : Convert.ToDecimal(dr["especialValorAcumulado"]); } } if (con.ID != 0) { using (IDataReader dr = cn.ExecuteReader("sp_buscaDezenasDuplaSena", new { @IdConcurso = con.ID }, commandType: CommandType.StoredProcedure)) { con.Dezenas = new List <DezenaDuplaSena>(); while (dr.Read()) { DezenaDuplaSena dezena = new DezenaDuplaSena() { Sorteio = Convert.ToByte(dr["sorteio"]), Dezena = Convert.ToByte(dr["dezena"]), }; con.Dezenas.Add(dezena); } } using (IDataReader dr = cn.ExecuteReader("sp_buscaPremiosDuplaSena", new { @IdConcurso = con.ID }, commandType: CommandType.StoredProcedure)) { con.Premios = new List <PremioDuplaSena>(); while (dr.Read()) { PremioDuplaSena premio = new PremioDuplaSena() { Sorteio = Convert.ToByte(dr["sorteio"]), Acertos = Convert.ToByte(dr["acertos"]), Ganhadores = Convert.ToInt32(dr["ganhadores"]), ValorPago = Convert.ToDecimal(dr["valorPago"]) }; con.Premios.Add(premio); } } } } } catch (Exception ex) { throw ex; } return(con); }
private Concurso deserializaConcurso(dynamic obj) { DuplaSena loteria = new DuplaSena() { ID = obj.concurso.numero, Data = DateTime.ParseExact(obj.concurso.data.ToString(), "dd/MM/yyyy", new CultureInfo("pt-BR")), Cidade = obj.concurso.cidade, Local = obj.concurso.local, ValorAcumulado = Convert.ToDecimal(obj.concurso.valor_acumulado.ToString().Replace(".", "")), ArrecadacaoTotal = Convert.ToDecimal(obj.concurso.arrecadacao_total.ToString().Replace(".", "")) }; loteria.Dezenas = new List <DezenaDuplaSena>(); foreach (byte dezena in obj.concurso.numeros_sorteados_1) { DezenaDuplaSena d = new DezenaDuplaSena() { Sorteio = 1, Dezena = dezena }; loteria.Dezenas.Add(d); } foreach (byte dezena in obj.concurso.numeros_sorteados_2) { DezenaDuplaSena d = new DezenaDuplaSena() { Sorteio = 2, Dezena = dezena }; loteria.Dezenas.Add(d); } loteria.Premios = new List <PremioDuplaSena>() { new PremioDuplaSena() { Acertos = 6, ValorPago = Convert.ToDecimal(obj.concurso.premiacao_1.sena.valor_pago.ToString().Replace(".", "")), Ganhadores = Convert.ToInt32(obj.concurso.premiacao_1.sena.ganhadores.ToString().Replace(".", "")), Sorteio = 1 }, new PremioDuplaSena() { Acertos = 5, ValorPago = Convert.ToDecimal(obj.concurso.premiacao_1.quina.valor_pago.ToString().Replace(".", "")), Ganhadores = Convert.ToInt32(obj.concurso.premiacao_1.quina.ganhadores.ToString().Replace(".", "")), Sorteio = 1 }, new PremioDuplaSena() { Acertos = 4, ValorPago = Convert.ToDecimal(obj.concurso.premiacao_1.quadra.valor_pago.ToString().Replace(".", "")), Ganhadores = Convert.ToInt32(obj.concurso.premiacao_1.quadra.ganhadores.ToString().Replace(".", "")), Sorteio = 1 }, new PremioDuplaSena() { Acertos = 6, ValorPago = Convert.ToDecimal(obj.concurso.premiacao_2.sena.valor_pago.ToString().Replace(".", "")), Ganhadores = Convert.ToInt32(obj.concurso.premiacao_2.sena.ganhadores.ToString().Replace(".", "")), Sorteio = 2 }, new PremioDuplaSena() { Acertos = 5, ValorPago = Convert.ToDecimal(obj.concurso.premiacao_2.quina.valor_pago.ToString().Replace(".", "")), Ganhadores = Convert.ToInt32(obj.concurso.premiacao_2.quina.ganhadores.ToString().Replace(".", "")), Sorteio = 2 }, new PremioDuplaSena() { Acertos = 4, ValorPago = Convert.ToDecimal(obj.concurso.premiacao_2.quadra.valor_pago.ToString().Replace(".", "")), Ganhadores = Convert.ToInt32(obj.concurso.premiacao_2.quadra.ganhadores.ToString().Replace(".", "")), Sorteio = 2 } }; loteria.ProximoConcurso = new ProximoConcurso() { Data = DateTime.ParseExact(obj.proximo_concurso.data.ToString(), "dd/MM/yyyy", new CultureInfo("pt-BR")), ValorEstimado = Convert.ToDecimal(obj.proximo_concurso.valor_estimado.ToString().Replace(".", "")) }; return(loteria); }