feat(api, bll): StatHostController, StatApplicationController добавлена статистика за период. ICalendarService - публичный метод для получения списка дат, метод получения даты с учетом часового пояса.
This commit is contained in:
@@ -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) };
|
||||
// }
|
||||
//}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user