public IEnumerable <Participante> GetAllPcd(TipoCota cota)
 {
     return(_context.Participantes
            .AsNoTracking()
            .Where(ParticipanteQueries.GetAllPcd(cota))
            .OrderBy(x => x.Nome));
 }
        public int GetAllValid()
        {
            var idosos = _context.Participantes.Where(ParticipanteQueries.GetAllIdoso(TipoCota.Idoso)).Count();
            var pcds   = _context.Participantes.Where(ParticipanteQueries.GetAllPcd(TipoCota.PcD)).Count();
            var gerais = _context.Participantes.Where(ParticipanteQueries.GetAllGeral(TipoCota.Geral)).Count();

            return(idosos + pcds + gerais);
        }
        public List <Participante> GetWinnerPcd(TipoCota cota, int qtd)
        {
            Random rdn = new Random();
            List <Participante>        sorteados = new List <Participante>();
            Participante               sorteado  = new Participante();
            IEnumerable <Participante> lista     = _context.Participantes
                                                   .AsNoTracking()
                                                   .Where(ParticipanteQueries.GetAllPcd(cota));

            for (int i = 1; i <= qtd; i++)
            {
                var result = lista.Where(p => sorteados.All(p2 => p2.Cpf != p.Cpf)).OrderBy(x => rdn.Next()).FirstOrDefault();

                if (result != null)
                {
                    sorteados.Add(result);
                }
            }
            return(sorteados);
        }