Example #1
0
        //Por hora o retorno em string (Sena, Quina ou Quadra) é suficiente
        //Adicionando-se novos concursos (e entendendo a real necessidade) pode-se refatorar
        public Dictionary <string, List <IBilhete <TJogo> > > Sortear()
        {
            string chave;
            List <IBilhete <TJogo> > bilhtesPremiados;
            Dictionary <string, List <IBilhete <TJogo> > > ganhadores = new Dictionary <string, List <IBilhete <TJogo> > >();
            var numerosSorteados = sorteador.Sortear();

            foreach (var bilhete in bilhetes)
            {
                var resultado = bilhete.Conferir(numerosSorteados);

                if (resultado.Premiado)
                {
                    chave = resultado.Premio;
                    if (!ganhadores.ContainsKey(chave))
                    {
                        bilhtesPremiados = new List <IBilhete <TJogo> >();
                        ganhadores.Add(chave, bilhtesPremiados);
                    }
                    ganhadores[chave].Add(resultado.Bilhete);
                }
            }

            //Como não estamos utilizando banco de dados
            //esta linha garante que o concurso não seja sorteado duas vezes
            //Utilizando-se banco uma estratégia mais elaborada pode ser implementada
            bilhetes.Clear();
            return(ganhadores);
        }
 private void Sortear(object sender, RoutedEventArgs e)
 {
     txtSort.Text = s.Sortear().ToString();
 }