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()); }
/// <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); }