private VencedorDaSemana ObterVencedorSemanal(IEnumerable <Voto> votos, DataInicioEFimDaSemana periodo) { if (votos == null) { return(null); } var totalDeVotos = votos.Sum(p => p.Quantidade); var emAndamento = CompararData.MaiorIgualHoje(periodo.Inicio) && CompararData.MenorIgualHoje(periodo.Fim); var vencedor = votos.OrderByDescending(p => p.Quantidade).FirstOrDefault(); return(new VencedorDaSemana(periodo.Inicio, periodo.Fim, vencedor.PretendenteId, vencedor.Pretendente.Nome, vencedor.Quantidade, CalcularPorcentagem(vencedor.Quantidade, totalDeVotos), emAndamento)); }
private VencedorDoDia ObterVencedorDiario(IEnumerable <Voto> votos) { if (votos == null) { return(null); } var diaDosVotos = votos.Select(p => p.Data).FirstOrDefault(); var periodoVotacao = ObterPeriodoVotacao(); var emAndamento = CompararData.MaiorIgualHoje(diaDosVotos) && CompararData.MenorIgualHoje(diaDosVotos); var totalDeVotos = votos.Sum(p => p.Quantidade); var vencedor = votos.OrderByDescending(p => p.Quantidade).FirstOrDefault(); return(new VencedorDoDia( vencedor.Data, vencedor.PretendenteId, vencedor.Pretendente.Nome, vencedor.Quantidade, CalcularPorcentagem(vencedor.Quantidade, totalDeVotos), emAndamento)); }