using PARR.API.Contracts.V1.Requests.Queries; using PARR.API.Services.Interfaces; using PARR.BLL.Services.Interfaces; using PARR.DAL.Models; namespace PARR.API.Services.Implementations { internal class WorkLoadService : IWorkLoadService { private readonly ICalendarService calendarService; public WorkLoadService(ICalendarService calendarService) { this.calendarService = calendarService; } private DateTime GetStartDate(int timeZoneOffsetHours) { //начинаем не с сегодняшнего дня, а с завтра, так как на сегодня уже некоторые работы были проведены и их дата изменилась //return DateTimeOffset.UtcNow.AddHours(timeZoneOffsetHours).Date.AddDays(1); return calendarService.GetDateWithTimeZoneOffset(DateTimeOffset.UtcNow, 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(); var aaa = DateOnly.FromDateTime(startDate); return calendarService.GetDatesForPeriod(DateOnly.FromDateTime(startDate), DateOnly.FromDateTime(endDate)); } public IQueryable