2026-04-14 16:27:27 +10:00
|
|
|
|
using PARR.API.Services.Interfaces;
|
2024-08-20 09:33:13 +10:00
|
|
|
|
|
|
|
|
|
|
namespace PARR.API.Services.Implementations
|
|
|
|
|
|
{
|
|
|
|
|
|
internal class WorkLoadService : IWorkLoadService
|
|
|
|
|
|
{
|
2026-04-14 16:27:27 +10:00
|
|
|
|
//private readonly ICalendarService calendarService;
|
2024-08-30 16:40:06 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
//public WorkLoadService(ICalendarService calendarService)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// this.calendarService = calendarService;
|
|
|
|
|
|
//}
|
2024-08-30 16:40:06 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
//private DateTime GetStartDate(int timeZoneOffsetHours)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// //(так уже не делаем) начинаем не с сегодняшнего дня, а с завтра, так как на сегодня уже некоторые работы были проведены и их дата изменилась
|
|
|
|
|
|
// //return DateTimeOffset.UtcNow.AddHours(timeZoneOffsetHours).Date.AddDays(1);
|
2024-08-30 16:40:06 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
// var dateWithTimeZoneOffset = calendarService.GetDateWithTimeZoneOffset(DateTimeOffset.UtcNow, timeZoneOffsetHours);
|
|
|
|
|
|
// //var dateWithAddDays = dateWithTimeZoneOffset.DateTime.AddDays(1);
|
|
|
|
|
|
// var dateWithAddDays = dateWithTimeZoneOffset.DateTime.AddDays(0);
|
2024-09-03 09:11:50 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
// //var bbb = dateWithTimeZoneOffset.DateTime.AddDays(1);
|
2024-09-03 09:11:50 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
// //return calendarService.GetDateWithTimeZoneOffset(DateTimeOffset.UtcNow, timeZoneOffsetHours).UtcDateTime.AddDays(1);
|
|
|
|
|
|
// return dateWithAddDays;
|
|
|
|
|
|
//}
|
2024-08-20 09:33:13 +10:00
|
|
|
|
|
|
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
//private DateTime GetEndDate(bool? isMonth, int timeZoneOffsetHours)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// var startDate = GetStartDate(timeZoneOffsetHours);
|
2024-08-20 09:33:13 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
// return isMonth == true ? startDate.AddDays(30) : startDate.AddDays(6);
|
|
|
|
|
|
//}
|
2024-08-20 09:33:13 +10:00
|
|
|
|
|
|
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
//public List<DateOnly> GetDatesForPeriod(WorkloadBaseQuery requestQuery)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// var startDate = GetStartDate(requestQuery.TimeZoneOffsetHours);
|
|
|
|
|
|
// var endDate = GetEndDate(requestQuery.IsMonth, requestQuery.TimeZoneOffsetHours);
|
2024-08-20 09:33:13 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
// //var daysList = new List<DateTimeOffset>();
|
2024-08-30 16:40:06 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
// //daysList.Add(new DateTimeOffset(startDate, new TimeSpan(0)));
|
2024-08-30 16:40:06 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
// //while (daysList.Last() < endDate)
|
|
|
|
|
|
// // daysList.Add(daysList.Last().AddDays(1));
|
2024-08-20 09:33:13 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
// //return daysList.OrderBy(t => t).ToList();
|
2024-08-20 09:33:13 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
// //var aaa = DateOnly.FromDateTime(startDate);
|
2024-08-20 09:33:13 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
// return calendarService.GetDatesForPeriod(DateOnly.FromDateTime(startDate), DateOnly.FromDateTime(endDate));
|
|
|
|
|
|
//}
|
2024-08-20 09:33:13 +10:00
|
|
|
|
|
|
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
//public IQueryable<Template> FilterTemplatesQuery(IQueryable<Template> query, WorkloadBaseQuery requestQuery)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// var startDate = GetStartDate(requestQuery.TimeZoneOffsetHours);
|
|
|
|
|
|
// var endDate = GetEndDate(requestQuery.IsMonth, requestQuery.TimeZoneOffsetHours);
|
2024-08-20 09:33:13 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
// //query = query.Where(t =>
|
|
|
|
|
|
// // t.NextRun.DateTime.Date >= startDate.Date && t.NextRun.DateTime.Date <= endDate.Date
|
|
|
|
|
|
// // );
|
2024-09-03 09:11:50 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
// query = query.Where(t =>
|
|
|
|
|
|
// t.NextRun.DateTime.AddHours(requestQuery.TimeZoneOffsetHours).Date >= startDate.Date && t.NextRun.DateTime.AddHours(requestQuery.TimeZoneOffsetHours).Date <= endDate.Date
|
|
|
|
|
|
// );
|
2024-08-20 09:33:13 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
// if (requestQuery.IsActiveTemplate.HasValue)
|
|
|
|
|
|
// query = query.Where(t => t.IsActiveTemplate == requestQuery.IsActiveTemplate.Value);
|
2024-08-20 09:33:13 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
// if (requestQuery.IsActiveSchedule.HasValue)
|
|
|
|
|
|
// query = query.Where(t => t.IsActiveSchedule == requestQuery.IsActiveSchedule.Value);
|
2024-08-20 09:33:13 +10:00
|
|
|
|
|
2026-04-14 16:27:27 +10:00
|
|
|
|
// return query;
|
|
|
|
|
|
//}
|
2024-08-20 09:33:13 +10:00
|
|
|
|
}
|
|
|
|
|
|
}
|