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();
                }
            }
        }
Пример #2
0
        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();
        }
Пример #3
0
        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());
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
        public ActionResult Index()
        {
            List <int[]> results = new List <int[]>();

            for (int i = 1; i < 4; i++)
            {
                results.Add(MegaSena.GetMegaSena(i));
            }

            return(View(results));
        }
Пример #6
0
        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));
        }
Пример #7
0
        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);
        }
Пример #8
0
        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());
        }
Пример #9
0
        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);
        }
Пример #10
0
        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));
        }
Пример #11
0
        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();
        }
Пример #13
0
        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());
        }
Пример #14
0
        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);
        }
Пример #15
0
            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();
            }