private void btnGenerateModel_Click(object sender, EventArgs e) { DialogResult dResult = MessageBox.Show(@"Será criado o arquivo C:\Users\Public\ExemploApostasMegaSena.xml que demonstra o modelo para o arquivo de importação. Deseja criá-lo?", "Deseja criar arquivo modelo?", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dResult == DialogResult.Yes) { TextWriter txtWriter = new StreamWriter(@"C:\Users\Public\ExemploApostasMegaSena.xml"); try { List <MegaSena> lst = new List <MegaSena>(); MegaSena msAux = new MegaSena { N1 = 0, N2 = 0, N3 = 0, N4 = 0, N5 = 0, N6 = 0 }; lst.Add(msAux); lst.Add(msAux); XmlSerializer serializador = new XmlSerializer(typeof(List <MegaSena>)); serializador.Serialize(txtWriter, lst); } finally { txtWriter.Close(); } } }
static void Main(string[] args) { var megaSena = new MegaSena(); for (var i = 0; i < 30000; i++) { megaSena.RegistrarJogo(megaSena.GerarNumerosParaAposta()); megaSena.RegistrarJogoAutomatico(); } var numerosSorteados = megaSena.Sortear(); var ganhadores = megaSena.Acertadores((List <int>)numerosSorteados); Console.WriteLine($"Números sorteados: {string.Join(",", numerosSorteados.OrderBy(a => a).ToList())}."); Console.WriteLine(); foreach (var item in ganhadores) { Console.WriteLine($"Dezendas: {item.Key} - Número de bilhetes premiados: {item.Value.Count()}"); foreach (var n in item.Value) { Console.WriteLine($"Bilhete: {n.Id.ToString().PadLeft(6, '0')} - {n.DataHoraJogo} - {string.Join(",", n.GetNumeros().OrderBy(a => a).ToList())}"); } Console.WriteLine(); } Console.ReadKey(); }
public void CriarBilheteDaMegaSena_ComNumerosValidos_CriaOBilheteComOsNumerosEmOrder( int d1, int d2, int d3, int d4, int d5, int d6, string esperado) { var megaSena = new MegaSena(d1, d2, d3, d4, d5, d6); Assert.Equal(esperado, megaSena.ToString()); }
/// <summary> /// SalvarResultadoMegaSena /// </summary> /// <param name="data"></param> public bool SalvarResultadoMegaSena(Jogo data) { try { using (MySqlConnection connection = new MySqlConnection(_connectionString)) { var sql = @"INSERT INTO RESULTADO_MEGASENA ( NUM_CONCURSO, DAT_CONCURSO, NUM_SORTEADOS, QTD_GANHADORES_SENA, VALOR_GANHADORES_SENA, QTD_GANHADORES_QUINA, VALOR_GANHADORES_QUINA, QTD_GANHADORES_QUADRA, VALOR_GANHADORES_QUADRA, VALOR_ACUMULADO ) VALUES ( @NUM_CONCURSO, @DAT_CONCURSO, @NUM_SORTEADOS, @QTD_GANHADORES_SENA, @VALOR_GANHADORES_SENA, @QTD_GANHADORES_QUINA, @VALOR_GANHADORES_QUINA, @QTD_GANHADORES_QUADRA, @VALOR_GANHADORES_QUADRA, @VALOR_ACUMULADO )"; var sena = data.premiacao.Where(s => s.nome.ToLower().Equals("sena")).Select(s => s).FirstOrDefault(); var quadra = data.premiacao.Where(s => s.nome.ToLower().Equals("quadra")).Select(s => s).FirstOrDefault(); var quina = data.premiacao.Where(s => s.nome.ToLower().Equals("quina")).Select(s => s).FirstOrDefault(); MegaSena obj = new MegaSena(); var resultId = connection.Execute(sql, new { NUM_CONCURSO = data.numero_concurso, DAT_CONCURSO = Convert.ToDateTime(data.data_concurso).Date.ToShortDateString(), NUM_SORTEADOS = Utils.FormataListaRetornaStringFormatada(data.dezenas), QTD_GANHADORES_SENA = sena.quantidade_ganhadores, VALOR_GANHADORES_SENA = sena.valor_total, QTD_GANHADORES_QUADRA = quadra.quantidade_ganhadores, VALOR_GANHADORES_QUADRA = quadra.valor_total, QTD_GANHADORES_QUINA = quina.quantidade_ganhadores, VALOR_GANHADORES_QUINA = quina.valor_total, VALOR_ACUMULADO = data.valor_acumulado }); } } catch (Exception ex) { Console.WriteLine("Erro do ", ex.Message); return(false); } return(true); }
public ActionResult Index() { List <int[]> results = new List <int[]>(); for (int i = 1; i < 4; i++) { results.Add(MegaSena.GetMegaSena(i)); } return(View(results)); }
public IActionResult Participar([FromBody] BilheteMegaSenaVO aposta) { if (aposta == null) { throw new Exception("Aposta não informada ou inválida"); } var bilhete = new MegaSena(aposta.Dezena1, aposta.Dezena2, aposta.Dezena3, aposta.Dezena4, aposta.Dezena5, aposta.Dezena6); concurso.Participar(bilhete); return(Json(aposta)); }
private Concurso deserializaConcurso(dynamic obj) { MegaSena loteria = new MegaSena() { 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(".", "")), EspecialValorAcumulado = Convert.ToDecimal(obj.mega_virada_valor_acumulado.ToString().Replace(".", "")) }; loteria.Dezenas = new List <byte>(); foreach (byte dezena in obj.concurso.numeros_sorteados) { loteria.Dezenas.Add(dezena); } loteria.Premios = new List <PremioPadrao>() { new PremioPadrao() { Acertos = 6, ValorPago = Convert.ToDecimal(obj.concurso.premiacao.sena.valor_pago.ToString().Replace(".", "")), Ganhadores = Convert.ToInt32(obj.concurso.premiacao.sena.ganhadores.ToString().Replace(".", "")) }, new PremioPadrao() { Acertos = 5, ValorPago = Convert.ToDecimal(obj.concurso.premiacao.quina.valor_pago.ToString().Replace(".", "")), Ganhadores = Convert.ToInt32(obj.concurso.premiacao.quina.ganhadores.ToString().Replace(".", "")) }, new PremioPadrao() { Acertos = 4, ValorPago = Convert.ToDecimal(obj.concurso.premiacao.quadra.valor_pago.ToString().Replace(".", "")), Ganhadores = Convert.ToInt32(obj.concurso.premiacao.quadra.ganhadores.ToString().Replace(".", "")) }, }; 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); }
public void Sortear_UmUnicoBilheteAcertadorDaSena_OBilheteRetonraVencedor() { var numerosPremiados = new MegaSena(1, 2, 3, 4, 5, 6); var sorteito = new Concurso <MegaSena>(new SorteioDaMegaSenaDouble()); sorteito.Participar(new MegaSena(1, 2, 3, 4, 5, 6)); var acertadores = sorteito.Sortear(); var bilhete = acertadores.First().Value.First(); Assert.Single(acertadores); Assert.Equal("Sena", acertadores.Keys.First()); Assert.Single(acertadores.Values.First()); Assert.Equal("1, 2, 3, 4, 5, 6", bilhete.ToString()); }
public void Sortear_DoisBilhetesAcertadoresDaSenaComOutrosSemPremio_OBilheteRetonraVencedor() { var numerosPremiados = new MegaSena(1, 2, 3, 4, 5, 6); var sorteito = new Concurso <MegaSena>(new SorteioDaMegaSenaDouble()); sorteito.Participar(new MegaSena(1, 2, 3, 4, 5, 6)); sorteito.Participar(new MegaSena(1, 2, 3, 4, 5, 7)); sorteito.Participar(new MegaSena(10, 20, 30, 40, 50, 7)); sorteito.Participar(new MegaSena(1, 2, 3, 4, 5, 6)); var resultado = sorteito.Sortear(); Assert.Equal(2, resultado.Count); Assert.Equal("Sena", resultado.Keys.First()); Assert.Equal(2, resultado.Values.First().Count); }
public IActionResult Surpresinha() { BilheteMegaSenaVO aposta = new BilheteMegaSenaVO(); MegaSena bilhete = new MegaSena(); aposta.Dezena1 = bilhete.Dezena1; aposta.Dezena2 = bilhete.Dezena2; aposta.Dezena3 = bilhete.Dezena3; aposta.Dezena4 = bilhete.Dezena4; aposta.Dezena5 = bilhete.Dezena5; aposta.Dezena6 = bilhete.Dezena6; concurso.Participar(bilhete); return(Json(aposta)); }
public Concurso ConsultaApi() { MegaSena loteria = new MegaSena(); loteria.ID = 1700; loteria.Cidade = "REGISTRO-SP"; loteria.Local = "Caminhão da Sorte"; loteria.Premios = new List <PremioPadrao>(); loteria.Premios.Add(new PremioPadrao(6, 100000, 10)); loteria.Premios.Add(new PremioPadrao(4, 100000, 5)); loteria.Premios.Add(new PremioPadrao(5, 100000, 3)); loteria.ProximoConcurso = new ProximoConcurso(DateTime.Now.AddDays(2), 500000); loteria.ValorAcumulado = 3122222; loteria.ArrecadacaoTotal = 500000; loteria.Dezenas = new List <byte>() { 10, 20, 30, 50, 70, 15 }; return(loteria); }
private void openFileDialog1_FileOk(object sender, CancelEventArgs e) { string _nomeArquivo = openFileDialog1.FileName; lstApostas = new List <MegaSena>(); if (File.Exists(_nomeArquivo)) { // Se é um XML if (_nomeArquivo.EndsWith(".xml")) { XmlSerializer serializador = new XmlSerializer(typeof(List <MegaSena>)); using (TextReader textReader = new StreamReader(_nomeArquivo)) { try { object o = serializador.Deserialize(textReader); lstApostas = o as List <MegaSena>; } catch { MessageBox.Show("Arquivo de importação de apostas corrompido, favor verificar dados inseridos.", "Arquivo corrompido", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } } // Se é um txt separado por tabs else { using (TextReader textReader = new StreamReader(_nomeArquivo)) { try { string[] apostasArray = textReader.ReadToEnd().Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < apostasArray.Length; i++) { string[] aposta = apostasArray[i].Split('\t'); MegaSena jogo = new MegaSena(); jogo.N1 = Convert.ToInt32(aposta[0]); jogo.N2 = Convert.ToInt32(aposta[1]); jogo.N3 = Convert.ToInt32(aposta[2]); jogo.N4 = Convert.ToInt32(aposta[3]); jogo.N5 = Convert.ToInt32(aposta[4]); jogo.N6 = Convert.ToInt32(aposta[5]); lstApostas.Add(jogo); } } catch { MessageBox.Show("Arquivo de importação de apostas corrompido, favor verificar dados inseridos.", "Arquivo corrompido", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } } } dgApostas.Columns.Clear(); dgApostas.DataSource = lstApostas; dgApostas.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader; dgApostas.Refresh(); }
public void CriarBilheteDaMegaSena_SemNumero_UmBilheteComNumeracaoAletoriaEGerado() { var megaSena = new MegaSena(); Assert.Matches("^(((0[1-9]|[1-9])|[1-5][0-9]|60), ){5}([1-9]|[1-5][0-9]|60)$", megaSena.ToString()); }
private Concurso buscar(int?id) { MegaSena con = new MegaSena(); try { using (cn) { cn.Open(); using (IDataReader dr = cn.ExecuteReader("sp_buscaConcursoMegaSena", 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 = Convert.ToDecimal(dr["especialValorAcumulado"]); } } if (con.ID != 0) { using (IDataReader dr = cn.ExecuteReader("sp_buscaDezenasMegaSena", new { @IdConcurso = con.ID }, commandType: CommandType.StoredProcedure)) { con.Dezenas = new List <byte>(); while (dr.Read()) { con.Dezenas.Add(Convert.ToByte(dr["dezena"])); } } using (IDataReader dr = cn.ExecuteReader("sp_buscaPremiosMegaSena", new { @IdConcurso = con.ID }, commandType: CommandType.StoredProcedure)) { con.Premios = new List <PremioPadrao>(); while (dr.Read()) { PremioPadrao premio = new PremioPadrao() { 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); }
static void Main(string[] args) { const string nomeConcurso = "Mega Sena Janeiro"; Concurso concurso = new Concurso(new MegaSena(6, 1, 60)); concurso.NomeConcurso = nomeConcurso; IConcursoRepository _concursoRepository = new ConcursoRepository(); IConcursoDomain _concursoDomain = new ConcursoDomain(_concursoRepository); string mensagem = string.Empty; _concursoDomain.CriarConcurso(concurso, out mensagem); if (!ValidarMensagem(mensagem)) { Console.WriteLine(mensagem); Console.ReadKey(); return; } _concursoDomain.GerarJogosAleatorios(nomeConcurso, 1000, out mensagem); if (!ValidarMensagem(mensagem)) { Console.WriteLine(mensagem); Console.ReadKey(); return; } Jogo jogo = new Jogo(); jogo.NumeroCartao = Guid.NewGuid(); jogo.NumerosJogo = new List <int>(6); jogo.NumerosJogo.Add(1); jogo.NumerosJogo.Add(30); jogo.NumerosJogo.Add(39); jogo.NumerosJogo.Add(40); jogo.NumerosJogo.Add(42); jogo.NumerosJogo.Add(44); _concursoDomain.CadastrarNovoJogo(jogo, nomeConcurso, out mensagem); if (!ValidarMensagem(mensagem)) { Console.WriteLine(mensagem); Console.ReadKey(); return; } _concursoDomain.ExecutarSorteio(nomeConcurso, out mensagem); if (!ValidarMensagem(mensagem)) { Console.WriteLine(mensagem); Console.ReadKey(); return; } _concursoDomain.ProcessarCartoes(nomeConcurso, out mensagem); if (!ValidarMensagem(mensagem)) { Console.WriteLine(mensagem); Console.ReadKey(); return; } Concurso concursoContext = _concursoDomain.BuscarConcursoPorNome(nomeConcurso); MegaSena resultado = (MegaSena)_concursoDomain.VerificarAcertadores(nomeConcurso, out mensagem); Console.WriteLine(string.Format("Concurso - {0}", concursoContext.NomeConcurso)); Console.WriteLine(""); Console.WriteLine("|||||||"); Console.WriteLine(""); Console.WriteLine("Numeros Sorteados"); concurso.Sorteio.NumerosSorteados.ForEach(delegate(int numero) { Console.WriteLine(numero); }); Console.WriteLine(""); Console.WriteLine("|||||||"); Console.WriteLine(""); Console.WriteLine("GANHADORES"); Console.WriteLine(""); Console.WriteLine("|||||||"); Console.WriteLine(""); Console.WriteLine("Sena"); if (resultado.AcertadoresSena == null || resultado.AcertadoresSena.Count == 0) { Console.WriteLine("Não houve acertadores."); } else { Console.WriteLine(string.Format("Quantidade Acertadores: {0}", resultado.AcertadoresSena.Count)); } foreach (var item in resultado.AcertadoresSena) { Console.WriteLine(string.Format("Cartão número - {0}", item.NumeroCartao)); } Console.WriteLine(""); Console.WriteLine("|||||||"); Console.WriteLine(""); Console.WriteLine("Quina"); if (resultado.AcertadoresQuina == null || resultado.AcertadoresQuina.Count == 0) { Console.WriteLine("Não houve acertadores."); } else { Console.WriteLine(string.Format("Quantidade Acertadores: {0}", resultado.AcertadoresQuina.Count)); } foreach (var item in resultado.AcertadoresQuina) { Console.WriteLine(string.Format("Cartão número - {0}", item.NumeroCartao)); } Console.WriteLine(""); Console.WriteLine("|||||||"); Console.WriteLine(""); Console.WriteLine("Quadra"); if (resultado.AcertadoresQuadra == null || resultado.AcertadoresQuadra.Count == 0) { Console.WriteLine("Não houve acertadores."); } else { Console.WriteLine(string.Format("Quantidade Acertadores: {0}", resultado.AcertadoresQuadra.Count)); } foreach (var item in resultado.AcertadoresQuadra) { Console.WriteLine(string.Format("Cartão número - {0}", item.NumeroCartao)); } Console.WriteLine(""); Console.WriteLine("|||||||"); Console.WriteLine(""); Console.ReadKey(); }