public List <DesenvolvedorResumoDTO> GetDesenvolvedoresByRacking()
 {
     try
     {
         int total = 0;
         foreach (DesenvolvedorResumoDTO d in Desenvolvedores)
         {
             total += d.TotalHoras;
         }
         int media = total / Desenvolvedores.Count;
         return(Desenvolvedores.OrderBy(d => d.TotalHoras).Where(d => d.TotalHoras > media).Take(5).ToList());
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        public void ObterTotalSemanal(DateTime inicioSemana)
        {
            if (inicioSemana == null || inicioSemana >= DateTime.Now)
            {
                throw new Exception("Data inválida!");
            }
            DateTime fimDeSemana = inicioSemana.AddDays(6);

            Pontos = (List <Ponto>)_unitOfWork.PontoRepository.GetPontosByPeriodo(inicioSemana, fimDeSemana);
            List <Desenvolvedor> ListaDesenvolvedoresParticipantes = new List <Desenvolvedor>();

            foreach (Ponto p in Pontos)
            {
                var dev = p.Desenvolvedor;
                dev.TotalSemanal += p.TempoTrabalho;
                ListaDesenvolvedoresParticipantes.Add(dev);
            }
            foreach (Desenvolvedor d in ListaDesenvolvedoresParticipantes)
            {
                var dev = new DesenvolvedorResumoDTO(d.Nome, d.Sobrenome, d.LinkedinUrl, d.GithubUrl);
                dev.TotalHoras = d.TotalSemanal;
                Desenvolvedores.Add(dev);
            }
        }