feat(dal): WeekendDayService - метод проверки на рабочий день

This commit is contained in:
Mikhail Trubnikov
2024-09-16 17:01:04 +10:00
parent 4a47e194f8
commit 251e3a20b0
8 changed files with 103 additions and 3 deletions

View File

@@ -208,7 +208,7 @@ namespace PARR.DAL.TransformServices
//TODO: вот это повторяется от метода к методу
//Если итоговая дата указывает на прошлое, то повторяем расчёт и ухоим в рекурсию
//Если итоговая дата указывает на прошлое, то повторяем расчёт и уходим в рекурсию
if (calcDay < DateTimeOffset.UtcNow)
calcDay = GetNextDateRegularly(values, calcDay);
@@ -216,6 +216,7 @@ namespace PARR.DAL.TransformServices
return calcDay;
}
private DateTimeOffset GetNextDateWeekly(List<EsppScheduleValDto> values, DateTimeOffset lastRun)
{
var dwNum = dwDict[values[0].Value.Value];
@@ -233,6 +234,7 @@ namespace PARR.DAL.TransformServices
return calcDay;
}
private DateTimeOffset GetNextDateMonthly(List<EsppScheduleValDto> values, DateTimeOffset lastRun)
{
int.TryParse(values[0].Value.Value, out int dayNum);
@@ -247,6 +249,7 @@ namespace PARR.DAL.TransformServices
return calcDay;
}
private DateTimeOffset GetNextDateMonthly2(List<EsppScheduleValDto> values, DateTimeOffset lastRun)
{
var orderNum = orderDict[values[0].Value.Value];
@@ -268,6 +271,8 @@ namespace PARR.DAL.TransformServices
return calcDay;
}
private DateTimeOffset GetNextDateAnnually(List<EsppScheduleValDto> values, DateTimeOffset lastRun)
{
var monthNum = monthDict[values[0].Value.Value];
@@ -283,6 +288,7 @@ namespace PARR.DAL.TransformServices
return calcDay;
}
private DateTimeOffset GetNextDateAnnually2(List<EsppScheduleValDto> values, DateTimeOffset lastRun)
{
var monthADict = new Dictionary<string, int>
@@ -322,6 +328,7 @@ namespace PARR.DAL.TransformServices
return calcDay;
}
private List<DateTimeOffset> FindAllDaysInMonth(int dwNum, ref DateTimeOffset calcDay)
{
if (((int)calcDay.DayOfWeek) != dwNum)
@@ -338,6 +345,7 @@ namespace PARR.DAL.TransformServices
return daysList;
}
private void OffsetToDayOfWeek(int dwNum, ref DateTimeOffset calcDay)
{
var daysOffset = dwNum - ((int)calcDay.DayOfWeek);
@@ -366,6 +374,7 @@ namespace PARR.DAL.TransformServices
return lastRun;
}
private DateTimeOffset GetPrevDateForDistributionRun(DateTimeOffset lastRun, DistributionPeriodTypeEnum periodType, string distributionPeriod)
{
switch (periodType)
@@ -383,6 +392,7 @@ namespace PARR.DAL.TransformServices
return lastRun;
}
public async Task<DateOnly> GetStartPeriodForDateAsync(Guid applicationInWorkId, DateTimeOffset date, DateTimeOffset referenceDate, DistributionPeriodTypeEnum periodType, string distributionPeriod)
{
@@ -422,6 +432,7 @@ namespace PARR.DAL.TransformServices
}
}
private DistributionPeriodTypeEnum ParseDistributionPeriodType(string value)
{
var result = (DistributionPeriodTypeEnum)Enum.Parse(typeof(DistributionPeriodTypeEnum), value);