feat(dal): DistributionPeriods

This commit is contained in:
Mikhail Kuznetsov
2024-07-01 12:09:01 +10:00
parent ff37e6c10f
commit 6e378f2b06
13 changed files with 6557 additions and 41 deletions

View File

@@ -15,14 +15,14 @@ namespace PARR.BLL.Services.Implementations
var endPeriod = GetEndPeriodDate(startPeriod, distributionPeriod);
//не получилось сделать асинхронным
var weekends = getWeekends.Invoke(startPeriod, endPeriod).ToList(); //.ToListAsync();
var weekends = getWeekends.Invoke(startPeriod, endPeriod).ToList(); //.ToListAsync();
//TODO: переделать метод получения рабочих дней, получать актуальные рабочие дни за период
//не стали реализовывать сразу, так как повысится нагрузка на робота
//TODO: метод получения рабочих дней, получать актуальные рабочие дни за период
//не стали добавлять праздничные и выходные дни сразу, так как повысится нагрузка на робота
// на следующий месяц будет много изменений
//временно сделаем список руками рабочих дней
var workDays = GetMockWorkDays(startPeriod, endPeriod);
var workDays = GetDatesForPeriod(startPeriod, endPeriod);
workDays = workDays.Where(t => weekends.Any(x => x != t)).ToList();
@@ -36,7 +36,7 @@ namespace PARR.BLL.Services.Implementations
/// <param name="startPeriod"></param>
/// <param name="EndPeriod"></param>
/// <returns></returns>
private List<DateOnly> GetMockWorkDays(DateOnly startPeriod, DateOnly EndPeriod)
private List<DateOnly> GetDatesForPeriod(DateOnly startPeriod, DateOnly EndPeriod)
{
var workDaysList = new List<DateOnly>();
@@ -44,9 +44,8 @@ namespace PARR.BLL.Services.Implementations
while (currentDay <= EndPeriod)
{
// 29 дней, потому что в феврале 28, чтоб не париться, сделали так
if (currentDay.Day < 29)
workDaysList.Add(currentDay);
//if (currentDay.Day < 29) - не делаем, так как в таблице DistributionPeriods указали 28 дней
workDaysList.Add(currentDay);
currentDay = currentDay.AddDays(1);
}