feat(api, bll): StatHostController, StatApplicationController добавлена статистика за период. ICalendarService - публичный метод для получения списка дат, метод получения даты с учетом часового пояса.

This commit is contained in:
Mikhail Trubnikov
2024-08-30 16:40:06 +10:00
parent 933bfcbeb1
commit 0c37de6238
15 changed files with 205 additions and 70 deletions

View File

@@ -46,19 +46,6 @@ namespace PARR.BLL.Services.Implementations
}
}
//private TimeSpan ParseTimeSpan(string value)
//{
// try
// {
// return TimeSpan.Parse(value);
// }
// catch (Exception ex)
// {
// logger.LogError(ex, $"{nameof(CalendarService)}, получение конца периода. Не смог распарсить string в TimeSpan для значения {value}.");
// return new TimeSpan(0);
// }
//}
/// <summary>
/// Возвращает список рабочих дней с начала периода без выходных
@@ -100,15 +87,15 @@ namespace PARR.BLL.Services.Implementations
/// Возвращает список дней между датами
/// </summary>
/// <param name="startPeriod"></param>
/// <param name="EndPeriod"></param>
/// <param name="endPeriod"></param>
/// <returns></returns>
private List<DateOnly> GetDatesForPeriod(DateOnly startPeriod, DateOnly EndPeriod)
public List<DateOnly> GetDatesForPeriod(DateOnly startPeriod, DateOnly endPeriod)
{
var workDaysList = new List<DateOnly>();
var currentDay = startPeriod;
while (currentDay <= EndPeriod)
while (currentDay <= endPeriod)
{
workDaysList.Add(currentDay);
currentDay = currentDay.AddDays(1);
@@ -116,41 +103,23 @@ namespace PARR.BLL.Services.Implementations
return workDaysList.OrderBy(t => t).ToList();
}
/// <summary>
/// Возвращает список дней между датами
/// </summary>
/// <param name="startPeriod"></param>
/// <param name="endPeriod"></param>
/// <returns></returns>
public List<DateOnly> GetDatesForPeriod(DateTimeOffset startPeriod, DateTimeOffset endPeriod)
{
return GetDatesForPeriod(DateOnly.FromDateTime(startPeriod.DateTime), DateOnly.FromDateTime(endPeriod.DateTime));
}
public DateTimeOffset GetDateWithTimeZoneOffset(DateTimeOffset date, int timeZoneOffsetHours)
{
return date.AddHours(timeZoneOffsetHours);
}
}
//public class Test
//{
// private readonly ICalendarService calendarService;
// public Test(ICalendarService calendarService)
// {
// this.calendarService = calendarService;
// }
// public async void Ttt()
// {
// var tService = new TestService();
// // var endPeriod = calendarService.GetEndPeriodDate(new DateOnly(2024, 1, 1), TimeSpan.Parse("30:00:00:00"));
// var workDays = await calendarService.GetWorkDatesForPeriodAsync(new DateOnly(2024, 1, 1), TimeSpan.Parse("30:00:00:00"), tService.GetWeekendsAsync);
// }
//}
//public class TestService
//{
// public async Task<List<DateOnly>> GetWeekendsAsync(DateOnly start, DateOnly end)
// {
// await Task.Delay(1000);
// return new List<DateOnly> { new DateOnly(2024, 1, 12) };
// }
//}
}