feat(api): WorkloadBaseQuery добавлен параметр TimeZoneOffsetHours, смещение таймзоны для построения отчетов в часовом поясе клиента

This commit is contained in:
Mikhail Trubnikov
2024-08-29 10:15:54 +10:00
parent a30ed148e8
commit 1e8d409c77
5 changed files with 16 additions and 12 deletions

View File

@@ -6,16 +6,16 @@ namespace PARR.API.Services.Implementations
{
internal class WorkLoadService : IWorkLoadService
{
private DateTime GetStartDate()
private DateTime GetStartDate(int timeZoneOffsetHours)
{
//начинаем не с сегодняшнего дня, а с завтра, так как на сегодня уже некоторые работы были проведены и их дата изменилась
return DateTimeOffset.UtcNow.Date.AddDays(1);
return DateTimeOffset.UtcNow.AddHours(timeZoneOffsetHours).Date.AddDays(1);
}
private DateTime GetEndDate(bool? isMonth)
private DateTime GetEndDate(bool? isMonth, int timeZoneOffsetHours)
{
var startDate = GetStartDate();
var startDate = GetStartDate(timeZoneOffsetHours);
return isMonth == true ? startDate.AddDays(30) : startDate.AddDays(6);
}
@@ -23,8 +23,8 @@ namespace PARR.API.Services.Implementations
public List<DateTimeOffset> GetDatesForPeriod(WorkloadBaseQuery requestQuery)
{
var startDate = GetStartDate();
var endDate = GetEndDate(requestQuery.IsMonth);
var startDate = GetStartDate(requestQuery.TimeZoneOffsetHours);
var endDate = GetEndDate(requestQuery.IsMonth, requestQuery.TimeZoneOffsetHours);
var daysList = new List<DateTimeOffset>();
@@ -39,8 +39,8 @@ namespace PARR.API.Services.Implementations
public IQueryable<Template> FilterTemplatesQuery(IQueryable<Template> query, WorkloadBaseQuery requestQuery)
{
var startDate = GetStartDate();
var endDate = GetEndDate(requestQuery.IsMonth);
var startDate = GetStartDate(requestQuery.TimeZoneOffsetHours);
var endDate = GetEndDate(requestQuery.IsMonth, requestQuery.TimeZoneOffsetHours);
query = query.Where(t =>
t.NextRun.DateTime.Date >= startDate.Date && t.NextRun.DateTime.Date <= endDate.Date