feat(api, bll): StatHostController, StatApplicationController добавлена статистика за период. ICalendarService - публичный метод для получения списка дат, метод получения даты с учетом часового пояса.
This commit is contained in:
@@ -1,15 +1,25 @@
|
||||
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 DateTimeOffset.UtcNow.AddHours(timeZoneOffsetHours).Date.AddDays(1);
|
||||
|
||||
return calendarService.GetDateWithTimeZoneOffset(DateTimeOffset.UtcNow, timeZoneOffsetHours).Date.AddDays(1);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,19 +31,23 @@ namespace PARR.API.Services.Implementations
|
||||
}
|
||||
|
||||
|
||||
public List<DateTimeOffset> GetDatesForPeriod(WorkloadBaseQuery requestQuery)
|
||||
public List<DateOnly> GetDatesForPeriod(WorkloadBaseQuery requestQuery)
|
||||
{
|
||||
var startDate = GetStartDate(requestQuery.TimeZoneOffsetHours);
|
||||
var endDate = GetEndDate(requestQuery.IsMonth, requestQuery.TimeZoneOffsetHours);
|
||||
|
||||
var daysList = new List<DateTimeOffset>();
|
||||
//var daysList = new List<DateTimeOffset>();
|
||||
|
||||
daysList.Add(new DateTimeOffset(startDate, new TimeSpan(0)));
|
||||
//daysList.Add(new DateTimeOffset(startDate, new TimeSpan(0)));
|
||||
|
||||
while (daysList.Last() < endDate)
|
||||
daysList.Add(daysList.Last().AddDays(1));
|
||||
//while (daysList.Last() < endDate)
|
||||
// daysList.Add(daysList.Last().AddDays(1));
|
||||
|
||||
return daysList.OrderBy(t => t).ToList();
|
||||
//return daysList.OrderBy(t => t).ToList();
|
||||
|
||||
var aaa = DateOnly.FromDateTime(startDate);
|
||||
|
||||
return calendarService.GetDatesForPeriod(DateOnly.FromDateTime(startDate), DateOnly.FromDateTime(endDate));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user