示例#1
0
 public List <FamiliaDto> SortearFamilia()
 {
     return(_familiaRepository.Query().Where(p => p.Status == 0).Select(p => new FamiliaDto {
         FamiliaId = p.Id,
         DataSelecao = DateTime.Now,
         PontosECriterios = CalcularPontosTotais(p),
     }).OrderByDescending(p => p.PontosECriterios.TotalDePontos).ToList());
 }
示例#2
0
        /// <summary>
        /// Realiza o sorteio da família baseado em sua pontuação
        /// </summary>
        /// <returns></returns>
        public SorteioDto SortearFamilia()
        {
            var        familiasDisponiveis = _repo.Query().Where(p => p.Status == 0).ToList();
            SorteioDto familiaSelecionada  = null;

            foreach (var familia in familiasDisponiveis)
            {
                var pontos = CalcularPontuacaoTotal(familia);

                if (familiaSelecionada == null || familiaSelecionada.PontuacaoTotal < pontos.PontuacaoTotal)
                {
                    familiaSelecionada = pontos;
                }
            }

            //Cadastrar no banco que a família foi contemplada
            AlterarStatusFamilia(familiaSelecionada);

            return(familiaSelecionada);
        }