using PARR.API.Contracts.V1.Requests.Queries; using PARR.API.Services.Interfaces; using PARR.DAL.Models; namespace PARR.API.Services.Implementations { internal class WorkLoadService : IWorkLoadService { private DateTime GetStartDate(int timeZoneOffsetHours) { //начинаем не с сегодняшнего дня, а с завтра, так как на сегодня уже некоторые работы были проведены и их дата изменилась return DateTimeOffset.UtcNow.AddHours(timeZoneOffsetHours).Date.AddDays(1); } private DateTime GetEndDate(bool? isMonth, int timeZoneOffsetHours) { var startDate = GetStartDate(timeZoneOffsetHours); return isMonth == true ? startDate.AddDays(30) : startDate.AddDays(6); } public List GetDatesForPeriod(WorkloadBaseQuery requestQuery) { var startDate = GetStartDate(requestQuery.TimeZoneOffsetHours); var endDate = GetEndDate(requestQuery.IsMonth, requestQuery.TimeZoneOffsetHours); var daysList = new List(); daysList.Add(new DateTimeOffset(startDate, new TimeSpan(0))); while (daysList.Last() < endDate) daysList.Add(daysList.Last().AddDays(1)); return daysList.OrderBy(t => t).ToList(); } public IQueryable