Esempio n. 1
0
        public Aposta Apostar(Aposta aposta)
        {
            if (Sorteio != null)
            {
                throw new ArgumentNullException("Nao foi dessa vez. Reinicie o aplicativo para realizar apostas.");
            }
            if (aposta == null)
            {
                throw new ArgumentNullException(nameof(aposta));
            }
            if (aposta.Numeros.Any(x => x < NumeroMinimo || x > NumeroMaximo))
            {
                throw new ArgumentOutOfRangeException($"Aposta Invalida. Informar somente numeros entre {NumeroMinimo} e {NumeroMaximo}.", nameof(aposta));
            }
            if (aposta.Numeros.Count() < QuantidadeNumerosApostaMinimo || aposta.Numeros.Count() > QuantidadeNumerosApostaMaximo)
            {
                throw new ArgumentOutOfRangeException($"Aposta Invalida. A posta deve conter entre {QuantidadeNumerosApostaMinimo} e {QuantidadeNumerosApostaMaximo} numeros.", nameof(aposta));
            }
            if (aposta.Numeros.GroupBy(x => x).Where(y => y.Count() > 1).Any())
            {
                throw new ArgumentNullException("Aposta invalida. A aposta nao deve possuir numeros repetidos.", nameof(aposta));
            }

            aposta.Id   = Jogos.Count + 1;
            aposta.Data = DateTime.Now;
            Jogos.Add(aposta);

            return(aposta);
        }
Esempio n. 2
0
        public Aposta Sortear()
        {
            if (Sorteio != null)
            {
                throw new ArgumentNullException("Os numeros ja foram sorteados!");
            }
            if (!Jogos.Any())
            {
                throw new ArgumentNullException("Nao existem jogos cadastrados");
            }

            Sorteio = new Aposta {
                Numeros = Enumerable.Range(NumeroMinimo, NumeroMaximo).OrderBy(x => random.Next()).Take(QuantidadeNumerosApostaMinimo).OrderBy(x => x).ToList()
            };

            return(Sorteio);
        }
Esempio n. 3
0
        public Aposta ApostarSurpresinha(int qtdeNumeros)
        {
            if (Sorteio != null)
            {
                throw new ArgumentNullException("Nao foi dessa vez. Reinicie o aplicativo para realizar apostas.");
            }
            if (qtdeNumeros < QuantidadeNumerosApostaMinimo || qtdeNumeros > QuantidadeNumerosApostaMaximo)
            {
                throw new ArgumentException($"A quantidade de numeros da aposta deve ser entre {QuantidadeNumerosApostaMinimo} e {QuantidadeNumerosApostaMaximo}.", nameof(qtdeNumeros));
            }

            var aposta = new Aposta {
                Numeros = Enumerable.Range(NumeroMinimo, NumeroMaximo).OrderBy(x => random.Next()).Take(qtdeNumeros).OrderBy(x => x).ToList()
            };

            aposta.Id   = Jogos.Count + 1;
            aposta.Data = DateTime.Now;
            Jogos.Add(aposta);

            return(aposta);
        }