コード例 #1
0
        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));
        }