From e151abd73e8f4083a96a3147891f4b94ced40044 Mon Sep 17 00:00:00 2001 From: Mikhail Kuznetsov Date: Wed, 20 Sep 2023 08:22:23 +1000 Subject: [PATCH 1/2] =?UTF-8?q?=D0=A3=D0=B2=D0=B5=D0=BB=D0=B8=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=82=D0=B0=D0=B9=D0=BC=D0=B0=D1=83=D1=82=20=D0=B2?= =?UTF-8?q?=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D0=BE=D0=B2=20=D0=B2=20=D0=90?= =?UTF-8?q?=D0=98=D0=A5=20=D0=98=D0=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PARR.AIHIT/AIHIT/SyncherInstaller.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/PARR.AIHIT/AIHIT/SyncherInstaller.cs b/PARR.AIHIT/AIHIT/SyncherInstaller.cs index c7953aef..5c12629b 100644 --- a/PARR.AIHIT/AIHIT/SyncherInstaller.cs +++ b/PARR.AIHIT/AIHIT/SyncherInstaller.cs @@ -23,6 +23,7 @@ namespace PARR.AIHIT services.AddDbContext(options => options.UseSqlServer( configuration.GetConnectionString("AihitConnection") + ,sqlServerOptions => sqlServerOptions.CommandTimeout(1800) )); services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies()); From a16646d62bfcf47d9c119f1e8c1e0e737725b09b Mon Sep 17 00:00:00 2001 From: Mikhail Kuznetsov Date: Wed, 20 Sep 2023 10:11:00 +1000 Subject: [PATCH 2/2] =?UTF-8?q?=D0=98=D0=B3=D0=BD=D0=BE=D1=80=D0=B8=D1=80?= =?UTF-8?q?=D1=83=D0=B5=D0=BC=D1=8B=D0=B5=20=D0=BF=D0=BE=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=20=D1=81=D1=80=D0=B0=D0=B2=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B8=20Template=20=D0=B2=20=D0=95=D0=A1=D0=9F=D0=9F=20?= =?UTF-8?q?=D0=B8=20=D0=9F=D0=90=D0=A0=D0=A0=20=D0=B2=D1=8B=D0=BD=D0=B5?= =?UTF-8?q?=D1=81=D0=B5=D0=BD=D1=8B=20=D0=B2=20=D0=BD=D0=B0=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=B9=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PARR.AIHIT/AIHIT/Syncher.cs | 46 +++++++++---------- PARR.EsppTemplateSync/Services/Manager.cs | 21 ++++++--- .../Settings/GlobalSettings.cs | 1 + PARR.EsppTemplateSyncWorker/appsettings.json | 3 +- PARR.Worker/PARR.Worker/appsettings.json | 2 +- 5 files changed, 41 insertions(+), 32 deletions(-) diff --git a/PARR.AIHIT/AIHIT/Syncher.cs b/PARR.AIHIT/AIHIT/Syncher.cs index 887267bc..c0330a97 100644 --- a/PARR.AIHIT/AIHIT/Syncher.cs +++ b/PARR.AIHIT/AIHIT/Syncher.cs @@ -217,34 +217,34 @@ namespace PARR.AIHIT var respAreas = settingService.Get().Where(ra => ra.Group == AIHTITSettings.RespAreaGroupName).ToList(); //Запускаем хранимую процедуру в АИХ ИТ и складываем в таблицу RawDataEKs, предварительно почистив старые данные - foreach (var respArea in respAreas) - { - var eksFromAIHIT = aihitService.GetEKList(respArea.Value)?.ToList(); + //foreach (var respArea in respAreas) + //{ + // var eksFromAIHIT = aihitService.GetEKList(respArea.Value)?.ToList(); - if (eksFromAIHIT == null) - continue; + // if (eksFromAIHIT == null) + // continue; - //Удаляем текущие данные по зоне ответственности respArea - var toDelete = rawDataEKService.Get().Where(rd => rd.ResponseArea == respArea.Value).ToList(); - toDelete.ForEach(d => rawDataEKService.Delete(d)); + // //Удаляем текущие данные по зоне ответственности respArea + // var toDelete = rawDataEKService.Get().Where(rd => rd.ResponseArea == respArea.Value).ToList(); + // toDelete.ForEach(d => rawDataEKService.Delete(d)); - foreach (var ek in eksFromAIHIT) - { - // создаем - var mappedEK = mapper.Map(ek); + // foreach (var ek in eksFromAIHIT) + // { + // // создаем + // var mappedEK = mapper.Map(ek); - mappedEK.Id = Guid.NewGuid(); - mappedEK.DateCreated = DateTimeOffset.UtcNow; + // mappedEK.Id = Guid.NewGuid(); + // mappedEK.DateCreated = DateTimeOffset.UtcNow; - if (!await rawDataEKService.CreateAsync(mappedEK) || !await rawDataEKService.CommitAsync()) - { - logger.LogError($"Не удалось создать запись rawDataEK {mappedEK.ShortName}({mappedEK.IP})"); - continue; - } - else - logger.LogInformation($"----- Создана запись rawDataEK {mappedEK.ShortName}({mappedEK.IP}) -----"); - } - } + // if (!await rawDataEKService.CreateAsync(mappedEK) || !await rawDataEKService.CommitAsync()) + // { + // logger.LogError($"Не удалось создать запись rawDataEK {mappedEK.ShortName}({mappedEK.IP})"); + // continue; + // } + // else + // logger.LogInformation($"----- Создана запись rawDataEK {mappedEK.ShortName}({mappedEK.IP}) -----"); + // } + //} //Разбираем сырые данные diff --git a/PARR.EsppTemplateSync/Services/Manager.cs b/PARR.EsppTemplateSync/Services/Manager.cs index 087f0dab..a64fcced 100644 --- a/PARR.EsppTemplateSync/Services/Manager.cs +++ b/PARR.EsppTemplateSync/Services/Manager.cs @@ -1,8 +1,10 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using PARR.BLL.Settings; using PARR.DAL.Contracts; using PARR.DAL.Models; using PARR.DAL.Services.Interfaces; +using PARR.EsppTemplateSync.Settings; namespace PARR.EsppTemplateSync.Services { @@ -11,16 +13,19 @@ namespace PARR.EsppTemplateSync.Services private readonly ILogger logger; private readonly IServiceProvider serviceProvider; private readonly IParserService parserService; + private readonly GlobalSettings globalSettings; public Manager( ILogger logger, IServiceProvider serviceProvider, - IParserService parserService + IParserService parserService, + GlobalSettings globalSettings ) { this.logger = logger; this.serviceProvider = serviceProvider; this.parserService = parserService; + this.globalSettings = globalSettings; } public Task ManageFileAsync(string path) @@ -98,17 +103,19 @@ namespace PARR.EsppTemplateSync.Services else { var isChanged = false; + var ignoreTemplateFieldsList = globalSettings.IgnoreTemplateFields?.Split(",").ToList().Select(t => t.Trim().ToLower()); foreach (var prop in template.GetType().GetProperties()) { if (prop == null) continue; - if (prop.Name == "Id" || - prop.Name == "Status" || - prop.Name == "DateCreated" || - prop.Name == "DateModified" || - prop.Name == "StatusCode" - ) continue; + if (ignoreTemplateFieldsList != null && ignoreTemplateFieldsList.Contains(prop.Name.Trim().ToLower())) continue; + //if (prop.Name == "Id" || + // prop.Name == "Status" || + // prop.Name == "DateCreated" || + // prop.Name == "DateModified" || + // prop.Name == "StatusCode" + // ) continue; var parrValue = template.GetType().GetProperty(prop.Name)?.GetValue(template, null); var esppValue = esppTemplate.GetType().GetProperty(prop.Name)?.GetValue(esppTemplate, null); diff --git a/PARR.EsppTemplateSync/Settings/GlobalSettings.cs b/PARR.EsppTemplateSync/Settings/GlobalSettings.cs index 051d8204..789a0d00 100644 --- a/PARR.EsppTemplateSync/Settings/GlobalSettings.cs +++ b/PARR.EsppTemplateSync/Settings/GlobalSettings.cs @@ -5,6 +5,7 @@ public MqSettings? MqSettings { get; set; } public StorageSettings? StorageSettings { get; set; } + public string? IgnoreTemplateFields { get; set; } } internal class MqSettings diff --git a/PARR.EsppTemplateSyncWorker/appsettings.json b/PARR.EsppTemplateSyncWorker/appsettings.json index 63291c72..d243317d 100644 --- a/PARR.EsppTemplateSyncWorker/appsettings.json +++ b/PARR.EsppTemplateSyncWorker/appsettings.json @@ -43,6 +43,7 @@ }, "StorageSettings": { "CheckIntervalSeconds": 30 - } + }, + "IgnoreTemplateFields": "Id,Status,DateCreated,DateModified,StatusCode" } } diff --git a/PARR.Worker/PARR.Worker/appsettings.json b/PARR.Worker/PARR.Worker/appsettings.json index deb7aab4..e986dbf1 100644 --- a/PARR.Worker/PARR.Worker/appsettings.json +++ b/PARR.Worker/PARR.Worker/appsettings.json @@ -38,7 +38,7 @@ "IncludeAddresses": "aihit@gvc.rzd" }, "WorkerSettings": { - "OccursEvery": "00:10:00.0" + "OccursEvery": "12:00:00.0" } }