From 60c0ba9ec8565c51d8a31c016af2b399206ec7ff Mon Sep 17 00:00:00 2001 From: Mikhail Trubnikov Date: Wed, 18 Sep 2024 16:32:45 +1000 Subject: [PATCH] =?UTF-8?q?feat(bll,dal,common):=20=D0=B2=20common=20-=20D?= =?UTF-8?q?ateResolver=20-=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B4=D0=B0=D1=82=D1=8B=20=D0=BD=D0=B0=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BA=D1=83=D1=89=D0=B8=D0=B5=20=D1=81=D1=83=D1=82=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=BE=D1=82=D0=BD=D0=BE=D1=81=D0=B8=D1=82=D0=B5=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D0=BE=20=D1=87=D0=B0=D1=81=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=8F=D1=81=D0=B0=20=D0=9C=D0=A1=D0=9A.=20Dal?= =?UTF-8?q?=20-=20EsppScheduleTransformService=20-=20=D1=80=D0=B0=D1=81?= =?UTF-8?q?=D1=81=D1=87=D0=B5=D1=82=20NextRun=20=D1=81=20=D1=83=D1=87?= =?UTF-8?q?=D0=B5=D1=82=D0=BE=D0=BC=20=D0=B2=D1=8B=D1=85=D0=BE=D0=B4=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20=D0=B4=D0=BD=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PARR.AIHITLoaderWorker/Dockerfile | 1 + PARR.AIHITSyncerWorker/Dockerfile | 1 + PARR.API.sln | 10 +- PARR.API/Contracts/V1/ApiRoutes.cs | 2 + PARR.API/Controllers/V1/TestController.cs | 9 ++ PARR.API/Dockerfile | 1 + PARR.BLL/PARR.BLL.csproj | 1 + .../Implementations/CalendarService.cs | 6 +- PARR.Common/DateResolver.cs | 34 ++++++ PARR.Common/PARR.Common.csproj | 9 ++ PARR.DAL/PARR.DAL.csproj | 1 + .../EsppScheduleTransformService.cs | 110 +++++++++++++++--- .../IEsppScheduleTransformService.cs | 14 +-- PARR.EsppOrderLoaderWorker/Dockerfile | 1 + PARR.EsppOrderManagerWorker/Dockerfile | 1 + PARR.EsppScheduleSyncWorker/Dockerfile | 1 + PARR.EsppTemplateSyncWorker/Dockerfile | 1 + PARR.GeneratorTemplatesWorker/Dockerfile | 1 + PARR.JobAutoControlWorker/Dockerfile | 1 + PARR.MasterWorker/Dockerfile | 1 + PARR.NextRunWorker/Dockerfile | 1 + PARR.TemplateActivatorWorker/Dockerfile | 1 + PARR.TemplateDistributorWorker/Dockerfile | 1 + README.md | 1 + 24 files changed, 181 insertions(+), 29 deletions(-) create mode 100644 PARR.Common/DateResolver.cs create mode 100644 PARR.Common/PARR.Common.csproj diff --git a/PARR.AIHITLoaderWorker/Dockerfile b/PARR.AIHITLoaderWorker/Dockerfile index 721e2e1f..cced4379 100644 --- a/PARR.AIHITLoaderWorker/Dockerfile +++ b/PARR.AIHITLoaderWorker/Dockerfile @@ -10,6 +10,7 @@ COPY ["NuGet.config", "."] COPY ["PARR.AIHITLoaderWorker/PARR.AIHITLoaderWorker.csproj", "PARR.AIHITLoaderWorker/"] COPY ["PARR.AIHITLoader/PARR.AIHITLoader.csproj", "PARR.AIHITLoader/"] COPY ["PARR.BLL/PARR.BLL.csproj", "PARR.BLL/"] +COPY ["PARR.Common/PARR.Common.csproj", "PARR.Common/"] RUN dotnet restore "./PARR.AIHITLoaderWorker/./PARR.AIHITLoaderWorker.csproj" COPY . . WORKDIR "/src/PARR.AIHITLoaderWorker" diff --git a/PARR.AIHITSyncerWorker/Dockerfile b/PARR.AIHITSyncerWorker/Dockerfile index e1ef39f2..8b471d03 100644 --- a/PARR.AIHITSyncerWorker/Dockerfile +++ b/PARR.AIHITSyncerWorker/Dockerfile @@ -12,6 +12,7 @@ COPY ["PARR.AIHITSyncer/PARR.AIHITSyncer.csproj", "PARR.AIHITSyncer/"] COPY ["PARR.BLL/PARR.BLL.csproj", "PARR.BLL/"] COPY ["PARR.DAL/PARR.DAL.csproj", "PARR.DAL/"] COPY ["PARR.Constants/PARR.Constants.csproj", "PARR.Constants/"] +COPY ["PARR.Common/PARR.Common.csproj", "PARR.Common/"] RUN dotnet restore "./PARR.AIHITSyncerWorker/./PARR.AIHITSyncerWorker.csproj" COPY . . WORKDIR "/src/PARR.AIHITSyncerWorker" diff --git a/PARR.API.sln b/PARR.API.sln index 48f2bca6..3326ce3e 100644 --- a/PARR.API.sln +++ b/PARR.API.sln @@ -76,9 +76,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.TemplateActivator", "P EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.TemplateActivatorWorker", "PARR.TemplateActivatorWorker\PARR.TemplateActivatorWorker.csproj", "{97E096AA-26F3-417A-A969-381464F4EF43}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.JobAutoControlWorker", "PARR.JobAutoControlWorker\PARR.JobAutoControlWorker.csproj", "{EFDC0833-E79C-476B-BF91-58E8778EA2E2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.JobAutoControlWorker", "PARR.JobAutoControlWorker\PARR.JobAutoControlWorker.csproj", "{EFDC0833-E79C-476B-BF91-58E8778EA2E2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.JobAutoControl", "PARR.JobAutoControl\PARR.JobAutoControl.csproj", "{2C35CCD5-6DCD-4640-98DA-D2DC11CE3BA5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.JobAutoControl", "PARR.JobAutoControl\PARR.JobAutoControl.csproj", "{2C35CCD5-6DCD-4640-98DA-D2DC11CE3BA5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.Common", "PARR.Common\PARR.Common.csproj", "{5C89E990-6E49-4897-8344-1AC3ECFBD869}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -220,6 +222,10 @@ Global {2C35CCD5-6DCD-4640-98DA-D2DC11CE3BA5}.Debug|Any CPU.Build.0 = Debug|Any CPU {2C35CCD5-6DCD-4640-98DA-D2DC11CE3BA5}.Release|Any CPU.ActiveCfg = Release|Any CPU {2C35CCD5-6DCD-4640-98DA-D2DC11CE3BA5}.Release|Any CPU.Build.0 = Release|Any CPU + {5C89E990-6E49-4897-8344-1AC3ECFBD869}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5C89E990-6E49-4897-8344-1AC3ECFBD869}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5C89E990-6E49-4897-8344-1AC3ECFBD869}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5C89E990-6E49-4897-8344-1AC3ECFBD869}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/PARR.API/Contracts/V1/ApiRoutes.cs b/PARR.API/Contracts/V1/ApiRoutes.cs index 8257dd9a..7ae1abb6 100644 --- a/PARR.API/Contracts/V1/ApiRoutes.cs +++ b/PARR.API/Contracts/V1/ApiRoutes.cs @@ -55,6 +55,8 @@ public const string IsWorkDay = Base + "/tests/is-work-day/"; + public const string GetWorkDay = Base + "/tests/get-work-day/{date}"; + public const string paramDate = "{lastRunDate}"; public const string paramApplicationInWorkId = "{applicationInWorkId}"; } diff --git a/PARR.API/Controllers/V1/TestController.cs b/PARR.API/Controllers/V1/TestController.cs index 84b7c316..0540731a 100644 --- a/PARR.API/Controllers/V1/TestController.cs +++ b/PARR.API/Controllers/V1/TestController.cs @@ -103,6 +103,15 @@ namespace PARR.API.Controllers.V1 } + //[HttpGet(ApiRoutes.Test.GetWorkDay)] + //public async Task GetWorkDay([FromRoute] DateTimeOffset date) + //{ + // var result = await esppScheduleTransformService.GetWorkDayAsync(date); + + // return Ok(result); + //} + + } public class CaheRequestTest diff --git a/PARR.API/Dockerfile b/PARR.API/Dockerfile index c6ff6976..a4374e63 100644 --- a/PARR.API/Dockerfile +++ b/PARR.API/Dockerfile @@ -12,6 +12,7 @@ COPY ["CHANGELOG.md", "PARR.API/"] COPY ["PARR.BLL/PARR.BLL.csproj", "PARR.BLL/"] COPY ["PARR.DAL/PARR.DAL.csproj", "PARR.DAL/"] COPY ["PARR.Constants/PARR.Constants.csproj", "PARR.Constants/"] +COPY ["PARR.Common/PARR.Common.csproj", "PARR.Common/"] RUN dotnet restore "PARR.API/PARR.API.csproj" COPY . . WORKDIR "/src/PARR.API" diff --git a/PARR.BLL/PARR.BLL.csproj b/PARR.BLL/PARR.BLL.csproj index 339b20b7..f5b59d30 100644 --- a/PARR.BLL/PARR.BLL.csproj +++ b/PARR.BLL/PARR.BLL.csproj @@ -16,6 +16,7 @@ + diff --git a/PARR.BLL/Services/Implementations/CalendarService.cs b/PARR.BLL/Services/Implementations/CalendarService.cs index 81730ff4..6991d391 100644 --- a/PARR.BLL/Services/Implementations/CalendarService.cs +++ b/PARR.BLL/Services/Implementations/CalendarService.cs @@ -1,5 +1,6 @@ using Microsoft.Extensions.Logging; using PARR.BLL.Services.Interfaces; +using PARR.Common; using PARR.Constants; namespace PARR.BLL.Services.Implementations @@ -76,7 +77,8 @@ namespace PARR.BLL.Services.Implementations //Так как в базе всё храним в UTC то время с 21 часа уже соответствует следующими суткам в календаре Москвы //просто сдвигаем на день весь список - if (refTime.Hour > 21) + //if (refTime.Hour > 21) + if (DateResolver.IsCurrentDayRelativeMskTime(refTime.Hour) == false) return workDays.Select(wd => wd.AddDays(-1)).ToList(); //иначе просто отдаём как есть @@ -84,6 +86,8 @@ namespace PARR.BLL.Services.Implementations } + + /// /// Возвращает список дней между датами /// diff --git a/PARR.Common/DateResolver.cs b/PARR.Common/DateResolver.cs new file mode 100644 index 00000000..222f3326 --- /dev/null +++ b/PARR.Common/DateResolver.cs @@ -0,0 +1,34 @@ +namespace PARR.Common +{ + /// + /// Даты и часовые пояса + /// + public static class DateResolver + { + /// + /// Это текущий день относительно часовой зоны МСК? Да - текущий, нет - следующий день. + /// + /// Дата ЮТС + /// + public static bool IsCurrentDayRelativeMskTime(DateTimeOffset date) + { + return IsCurrentDayRelativeMskTime(date.Hour); + } + + + /// + /// Это текущий день относительно часовой зоны МСК? Да - текущий, нет - следующий день. + /// + /// Час + /// + public static bool IsCurrentDayRelativeMskTime(int hour) + { + //Так как в базе всё храним в UTC то время с 21 часа уже соответствует следующими суткам в календаре Москвы + + if (hour >= 21) + return false; + + return true; + } + } +} diff --git a/PARR.Common/PARR.Common.csproj b/PARR.Common/PARR.Common.csproj new file mode 100644 index 00000000..cfadb03d --- /dev/null +++ b/PARR.Common/PARR.Common.csproj @@ -0,0 +1,9 @@ + + + + net7.0 + enable + enable + + + diff --git a/PARR.DAL/PARR.DAL.csproj b/PARR.DAL/PARR.DAL.csproj index 7a91d6f0..f7f10fbe 100644 --- a/PARR.DAL/PARR.DAL.csproj +++ b/PARR.DAL/PARR.DAL.csproj @@ -20,6 +20,7 @@ + diff --git a/PARR.DAL/TransformServices/EsppScheduleTransformService.cs b/PARR.DAL/TransformServices/EsppScheduleTransformService.cs index dd9b1ead..28603aca 100644 --- a/PARR.DAL/TransformServices/EsppScheduleTransformService.cs +++ b/PARR.DAL/TransformServices/EsppScheduleTransformService.cs @@ -1,5 +1,6 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; +using PARR.Common; using PARR.Constants; using PARR.DAL.Contracts; using PARR.DAL.DomainModels; @@ -12,6 +13,7 @@ namespace PARR.DAL.TransformServices { private readonly IEsppSchTypeConfigService esppSchTypeConfigService; private readonly IApplicationsInWorkService applicationsInWorkService; + private readonly IWeekendDayService weekendDayService; private readonly ILogger logger; private readonly Dictionary monthDict = new Dictionary() @@ -50,45 +52,65 @@ namespace PARR.DAL.TransformServices {"Воскресенье", 0 } }; + public EsppScheduleTransformService( ILogger logger, IEsppSchTypeConfigService esppSchTypeConfigService, - IApplicationsInWorkService applicationsInWorkService - + IApplicationsInWorkService applicationsInWorkService, + IWeekendDayService weekendDayService ) { this.esppSchTypeConfigService = esppSchTypeConfigService; this.applicationsInWorkService = applicationsInWorkService; + this.weekendDayService = weekendDayService; this.logger = logger; } public DateTimeOffset GetNextDate(EsppScheduleDto esppSchedule, DateTimeOffset lastRun) { + var nextRun = lastRun; + //если больше текущего вернуть lastRun. Это и есть следующая дата if (lastRun > DateTimeOffset.UtcNow) - return lastRun; + nextRun = lastRun; + //return lastRun; switch (esppSchedule.TypeSchedule.Id) { case (int)EsppSchTypeScheduleEnum.Regularly: - return GetNextDateRegularly(esppSchedule.Values, lastRun); + //return GetNextDateRegularly(esppSchedule.Values, lastRun); + nextRun = GetNextDateRegularly(esppSchedule.Values, lastRun); + break; case (int)EsppSchTypeScheduleEnum.Weekly: - return GetNextDateWeekly(esppSchedule.Values, lastRun); + //return GetNextDateWeekly(esppSchedule.Values, lastRun); + nextRun = GetNextDateWeekly(esppSchedule.Values, lastRun); + break; case (int)EsppSchTypeScheduleEnum.Monthly: - return GetNextDateMonthly(esppSchedule.Values, lastRun); + //return GetNextDateMonthly(esppSchedule.Values, lastRun); + nextRun = GetNextDateMonthly(esppSchedule.Values, lastRun); + break; case (int)EsppSchTypeScheduleEnum.Monthly2: - return GetNextDateMonthly2(esppSchedule.Values, lastRun); + //return GetNextDateMonthly2(esppSchedule.Values, lastRun); + nextRun = GetNextDateMonthly2(esppSchedule.Values, lastRun); + break; case (int)EsppSchTypeScheduleEnum.Annually: - return GetNextDateAnnually(esppSchedule.Values, lastRun); + //return GetNextDateAnnually(esppSchedule.Values, lastRun); + nextRun = GetNextDateAnnually(esppSchedule.Values, lastRun); + break; case (int)EsppSchTypeScheduleEnum.Annually2: - return GetNextDateAnnually2(esppSchedule.Values, lastRun); + //return GetNextDateAnnually2(esppSchedule.Values, lastRun); + nextRun = GetNextDateAnnually2(esppSchedule.Values, lastRun); + break; } - return lastRun;//todo убрать lastrun должен возвращать реальный результат + + nextRun = GetWorkDayAsync(nextRun).GetAwaiter().GetResult(); + + return nextRun; } - public List GetNextSchedule(EsppScheduleDto esppSchedule, DateTimeOffset lastRun) + private List GetNextSchedule(EsppScheduleDto esppSchedule, DateTimeOffset lastRun) { // расписание на оставшееся на сегодня время. его так мало... lastRun = lastRun.UtcDateTime; @@ -136,7 +158,7 @@ namespace PARR.DAL.TransformServices { //если больше текущего вернуть lastRun. Это и есть следующая дата if (lastRun > DateTimeOffset.UtcNow) - return lastRun; + return await GetWorkDayAsync(lastRun); var appInWork = await applicationsInWorkService.Get() .Include(aiw => aiw.EsppSchValues) @@ -160,6 +182,8 @@ namespace PARR.DAL.TransformServices public async Task> GetNextScheduleAsync(Guid applicationInWorkId, DateTimeOffset lastRun) { + //TODO: тут не проверен переход через выходные дни!!! Переход не используется, так как тут не рассчитываем NextRun. + //В общем проверить, когда будем тестировать агента, что с датами все ок var esppSchedule = await GetEsppScheduleAsync(applicationInWorkId); var nextSchedule = GetNextSchedule(esppSchedule, lastRun); @@ -179,6 +203,7 @@ namespace PARR.DAL.TransformServices return esppSchedule; } + private DateTimeOffset GetNextDateRegularly(List values, DateTimeOffset lastRun) { var regDict = new Dictionary @@ -359,19 +384,25 @@ namespace PARR.DAL.TransformServices public DateTimeOffset GetNextDateForDistributionRun(DateTimeOffset lastRun, DistributionPeriodTypeEnum periodType, string distributionPeriod) { + var nextRun = lastRun; + switch (periodType) { case (DistributionPeriodTypeEnum.Day): - return lastRun.AddDays(ParseInt(distributionPeriod)); - + //return lastRun.AddDays(ParseInt(distributionPeriod)); + nextRun = lastRun.AddDays(ParseInt(distributionPeriod)); + break; case (DistributionPeriodTypeEnum.Month): - return lastRun.AddMonths(ParseInt(distributionPeriod)); - + //return lastRun.AddMonths(ParseInt(distributionPeriod)); + nextRun = lastRun.AddMonths(ParseInt(distributionPeriod)); + break; case (DistributionPeriodTypeEnum.Year): - return lastRun.AddYears(ParseInt(distributionPeriod)); + //return lastRun.AddYears(ParseInt(distributionPeriod)); + nextRun = lastRun.AddYears(ParseInt(distributionPeriod)); + break; } - return lastRun; + return GetWorkDayAsync(nextRun).GetAwaiter().GetResult(); } @@ -395,7 +426,6 @@ namespace PARR.DAL.TransformServices public async Task GetStartPeriodForDateAsync(Guid applicationInWorkId, DateTimeOffset date, DateTimeOffset referenceDate, DistributionPeriodTypeEnum periodType, string distributionPeriod) { - var esppSchedule = await GetEsppScheduleAsync(applicationInWorkId); var currentStartPeriod = referenceDate; @@ -439,5 +469,47 @@ namespace PARR.DAL.TransformServices return result; } + + + /// + /// Получить рабочий день следующего срабатывания + /// + /// + /// + private async Task GetWorkDayAsync(DateTimeOffset nextRun) + { + // получаем день относительно часового пояса МСК + var date = DateOnly.FromDateTime(DateResolver.IsCurrentDayRelativeMskTime(nextRun) ? nextRun.Date : nextRun.Date.AddDays(1)); + + if (await weekendDayService.IsWorkDayAsync(date, true)) + { + //текущий nextRun рабочий день, возвращаем его + return nextRun; + } + + // ищем следующий рабочий день, максимум 20 итераций, если за их кол-во не нашли рабочий, берём последний не рабочий + int count = 20; + while (count > 0) + { + date = date.AddDays(1); + var isWorkDay = await weekendDayService.IsWorkDayAsync(date, true); + if (isWorkDay) + break; // это рабочий день, выбираем его + + count--; + + if (!isWorkDay && count == 0) + logger.LogWarning($"Не нашли рабочий день за 20 итераций, взяли последний нерабочий {date}"); + } + + // смотрим, если смещали из-за пояса МСК на день вперед, вычитаем этот день назад + if (!DateResolver.IsCurrentDayRelativeMskTime(nextRun)) + date = date.AddDays(-1); + + // считаем новый NextRun + var dayCount = date.DayNumber - DateOnly.FromDateTime(nextRun.Date).DayNumber; + + return nextRun.AddDays(dayCount); + } } } diff --git a/PARR.DAL/TransformServices/IEsppScheduleTransformService.cs b/PARR.DAL/TransformServices/IEsppScheduleTransformService.cs index 604309a9..bee6478f 100644 --- a/PARR.DAL/TransformServices/IEsppScheduleTransformService.cs +++ b/PARR.DAL/TransformServices/IEsppScheduleTransformService.cs @@ -16,13 +16,13 @@ namespace PARR.DAL.TransformServices /// DateTimeOffset GetNextDate(EsppScheduleDto esppSchedule, DateTimeOffset lastRun); - /// - /// Получить расписание - /// - /// - /// - /// - List GetNextSchedule(EsppScheduleDto esppSchedule, DateTimeOffset lastRun); + ///// + ///// Получить расписание + ///// + ///// + ///// + ///// + //List GetNextSchedule(EsppScheduleDto esppSchedule, DateTimeOffset lastRun); /// /// Получить следующую дату по applicationInWorkId diff --git a/PARR.EsppOrderLoaderWorker/Dockerfile b/PARR.EsppOrderLoaderWorker/Dockerfile index 30091746..ff95d5b3 100644 --- a/PARR.EsppOrderLoaderWorker/Dockerfile +++ b/PARR.EsppOrderLoaderWorker/Dockerfile @@ -12,6 +12,7 @@ COPY ["PARR.BLL/PARR.BLL.csproj", "PARR.BLL/"] COPY ["PARR.DAL/PARR.DAL.csproj", "PARR.DAL/"] COPY ["PARR.EsppApi/PARR.EsppApi.csproj", "PARR.EsppApi/"] COPY ["PARR.Constants/PARR.Constants.csproj", "PARR.Constants/"] +COPY ["PARR.Common/PARR.Common.csproj", "PARR.Common/"] RUN dotnet restore "PARR.EsppOrderLoaderWorker/PARR.EsppOrderLoaderWorker.csproj" COPY . . WORKDIR "/src/PARR.EsppOrderLoaderWorker" diff --git a/PARR.EsppOrderManagerWorker/Dockerfile b/PARR.EsppOrderManagerWorker/Dockerfile index 3d66bc41..f2765aeb 100644 --- a/PARR.EsppOrderManagerWorker/Dockerfile +++ b/PARR.EsppOrderManagerWorker/Dockerfile @@ -12,6 +12,7 @@ COPY ["PARR.BLL/PARR.BLL.csproj", "PARR.BLL/"] COPY ["PARR.DAL/PARR.DAL.csproj", "PARR.DAL/"] COPY ["PARR.EsppApi/PARR.EsppApi.csproj", "PARR.EsppApi/"] COPY ["PARR.Constants/PARR.Constants.csproj", "PARR.Constants/"] +COPY ["PARR.Common/PARR.Common.csproj", "PARR.Common/"] RUN dotnet restore "PARR.EsppOrderManagerWorker/PARR.EsppOrderManagerWorker.csproj" COPY . . WORKDIR "/src/PARR.EsppOrderManagerWorker" diff --git a/PARR.EsppScheduleSyncWorker/Dockerfile b/PARR.EsppScheduleSyncWorker/Dockerfile index 3b390db8..1d729cb5 100644 --- a/PARR.EsppScheduleSyncWorker/Dockerfile +++ b/PARR.EsppScheduleSyncWorker/Dockerfile @@ -11,6 +11,7 @@ COPY ["PARR.EsppScheduleSync/PARR.EsppScheduleSync.csproj", "PARR.EsppScheduleSy COPY ["PARR.BLL/PARR.BLL.csproj", "PARR.BLL/"] COPY ["PARR.DAL/PARR.DAL.csproj", "PARR.DAL/"] COPY ["PARR.Constants/PARR.Constants.csproj", "PARR.Constants/"] +COPY ["PARR.Common/PARR.Common.csproj", "PARR.Common/"] COPY ["PARR.EsppSync/PARR.EsppSync.csproj", "PARR.EsppSync/"] RUN dotnet restore "PARR.EsppScheduleSyncWorker/PARR.EsppScheduleSyncWorker.csproj" COPY . . diff --git a/PARR.EsppTemplateSyncWorker/Dockerfile b/PARR.EsppTemplateSyncWorker/Dockerfile index ec3a584c..d93046f4 100644 --- a/PARR.EsppTemplateSyncWorker/Dockerfile +++ b/PARR.EsppTemplateSyncWorker/Dockerfile @@ -11,6 +11,7 @@ COPY ["PARR.EsppTemplateSync/PARR.EsppTemplateSync.csproj", "PARR.EsppTemplateSy COPY ["PARR.BLL/PARR.BLL.csproj", "PARR.BLL/"] COPY ["PARR.DAL/PARR.DAL.csproj", "PARR.DAL/"] COPY ["PARR.Constants/PARR.Constants.csproj", "PARR.Constants/"] +COPY ["PARR.Common/PARR.Common.csproj", "PARR.Common/"] RUN dotnet restore "PARR.EsppTemplateSyncWorker/PARR.EsppTemplateSyncWorker.csproj" COPY . . WORKDIR "/src/PARR.EsppTemplateSyncWorker" diff --git a/PARR.GeneratorTemplatesWorker/Dockerfile b/PARR.GeneratorTemplatesWorker/Dockerfile index 8bbac362..76f67967 100644 --- a/PARR.GeneratorTemplatesWorker/Dockerfile +++ b/PARR.GeneratorTemplatesWorker/Dockerfile @@ -12,6 +12,7 @@ COPY ["PARR.TemplateDistributor/PARR.TemplateDistributor.csproj", "PARR.Template COPY ["PARR.BLL/PARR.BLL.csproj", "PARR.BLL/"] COPY ["PARR.DAL/PARR.DAL.csproj", "PARR.DAL/"] COPY ["PARR.Constants/PARR.Constants.csproj", "PARR.Constants/"] +COPY ["PARR.Common/PARR.Common.csproj", "PARR.Common/"] RUN dotnet restore "PARR.GeneratorTemplatesWorker/PARR.GeneratorTemplatesWorker.csproj" COPY . . WORKDIR "/src/PARR.GeneratorTemplatesWorker" diff --git a/PARR.JobAutoControlWorker/Dockerfile b/PARR.JobAutoControlWorker/Dockerfile index 600dc681..08ea960c 100644 --- a/PARR.JobAutoControlWorker/Dockerfile +++ b/PARR.JobAutoControlWorker/Dockerfile @@ -11,6 +11,7 @@ COPY ["PARR.JobAutoControlWorker/PARR.JobAutoControlWorker.csproj", "PARR.JobAut COPY ["PARR.JobAutoControl/PARR.JobAutoControl.csproj", "PARR.JobAutoControl/"] COPY ["PARR.BLL/PARR.BLL.csproj", "PARR.BLL/"] COPY ["PARR.Constants/PARR.Constants.csproj", "PARR.Constants/"] +COPY ["PARR.Common/PARR.Common.csproj", "PARR.Common/"] COPY ["PARR.DAL/PARR.DAL.csproj", "PARR.DAL/"] RUN dotnet restore "./PARR.JobAutoControlWorker/PARR.JobAutoControlWorker.csproj" COPY . . diff --git a/PARR.MasterWorker/Dockerfile b/PARR.MasterWorker/Dockerfile index c829b00b..4ffa0aa5 100644 --- a/PARR.MasterWorker/Dockerfile +++ b/PARR.MasterWorker/Dockerfile @@ -11,6 +11,7 @@ COPY ["PARR.Master/PARR.Master.csproj", "PARR.Master/"] COPY ["PARR.BLL/PARR.BLL.csproj", "PARR.BLL/"] COPY ["PARR.DAL/PARR.DAL.csproj", "PARR.DAL/"] COPY ["PARR.Constants/PARR.Constants.csproj", "PARR.Constants/"] +COPY ["PARR.Common/PARR.Common.csproj", "PARR.Common/"] RUN dotnet restore "PARR.MasterWorker/PARR.MasterWorker.csproj" COPY . . WORKDIR "/src/PARR.MasterWorker" diff --git a/PARR.NextRunWorker/Dockerfile b/PARR.NextRunWorker/Dockerfile index 0cf8a67d..31e6a11f 100644 --- a/PARR.NextRunWorker/Dockerfile +++ b/PARR.NextRunWorker/Dockerfile @@ -12,6 +12,7 @@ COPY ["PARR.NextRun/PARR.NextRun.csproj", "PARR.NextRun/"] COPY ["PARR.BLL/PARR.BLL.csproj", "PARR.BLL/"] COPY ["PARR.DAL/PARR.DAL.csproj", "PARR.DAL/"] COPY ["PARR.Constants/PARR.Constants.csproj", "PARR.Constants/"] +COPY ["PARR.Common/PARR.Common.csproj", "PARR.Common/"] RUN dotnet restore "./PARR.NextRunWorker/./PARR.NextRunWorker.csproj" COPY . . WORKDIR "/src/PARR.NextRunWorker" diff --git a/PARR.TemplateActivatorWorker/Dockerfile b/PARR.TemplateActivatorWorker/Dockerfile index b13b2fa7..838054e5 100644 --- a/PARR.TemplateActivatorWorker/Dockerfile +++ b/PARR.TemplateActivatorWorker/Dockerfile @@ -11,6 +11,7 @@ COPY ["PARR.TemplateActivatorWorker/PARR.TemplateActivatorWorker.csproj", "PARR. COPY ["PARR.TemplateActivator/PARR.TemplateActivator.csproj", "PARR.TemplateActivator/"] COPY ["PARR.BLL/PARR.BLL.csproj", "PARR.BLL/"] COPY ["PARR.Constants/PARR.Constants.csproj", "PARR.Constants/"] +COPY ["PARR.Common/PARR.Common.csproj", "PARR.Common/"] COPY ["PARR.DAL/PARR.DAL.csproj", "PARR.DAL/"] RUN dotnet restore "./PARR.TemplateActivatorWorker/PARR.TemplateActivatorWorker.csproj" COPY . . diff --git a/PARR.TemplateDistributorWorker/Dockerfile b/PARR.TemplateDistributorWorker/Dockerfile index 92ed10e5..d08e6fa0 100644 --- a/PARR.TemplateDistributorWorker/Dockerfile +++ b/PARR.TemplateDistributorWorker/Dockerfile @@ -11,6 +11,7 @@ COPY ["PARR.TemplateDistributorWorker/PARR.TemplateDistributorWorker.csproj", "P COPY ["PARR.TemplateDistributor/PARR.TemplateDistributor.csproj", "PARR.TemplateDistributor/"] COPY ["PARR.BLL/PARR.BLL.csproj", "PARR.BLL/"] COPY ["PARR.Constants/PARR.Constants.csproj", "PARR.Constants/"] +COPY ["PARR.Common/PARR.Common.csproj", "PARR.Common/"] COPY ["PARR.DAL/PARR.DAL.csproj", "PARR.DAL/"] RUN dotnet restore "./PARR.TemplateDistributorWorker/PARR.TemplateDistributorWorker.csproj" COPY . . diff --git a/README.md b/README.md index f006e4c9..c01890f5 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ - PARR.AIHITSyncerWorker - PARR.API - API - PARR.BLL - общие методы и настройки для проектов +- PARR.Common - общие методы для DAL и BLL - PARR.Constants - глобальные константы - PARR.DAL - модели, сервисы по работе с БД PARR - PARR.EsppApi - сервисы по работе с Api ЕСПП