public async Task <GenericCommandResult> GetDeveloperWithHours() { var developersDb = await _developerRepository.GetAllWithHoursAsync(); int dayOfWeek = (int)DateTime.Now.DayOfWeek; var response = new List <DeveloperHoursWorkedResponse>(); foreach (var developer in developersDb) { var date = DateTime.UtcNow.Date.AddDays(-dayOfWeek); var hours = developer.TimeSheets .Where(x => x.DateBegin.CompareTo(date) >= 0).Sum(x => x.TotalHours); var spam = TimeSpan.FromHours(hours); response.Add(new DeveloperHoursWorkedResponse { Id = developer.Id, Name = developer.Name, TotalHourPerWeek = spam.ToString() }); } var data = response.OrderByDescending(x => x.TotalHourPerWeek).Take(5); return(new GenericCommandResult(true, "Lista retornada com sucesso", data)); }