Игнорируемые поля при сравнении Template в ЕСПП и ПАРР вынесены в настройки

This commit is contained in:
Mikhail Kuznetsov
2023-09-20 10:11:00 +10:00
parent e151abd73e
commit a16646d62b
5 changed files with 41 additions and 32 deletions

View File

@@ -217,34 +217,34 @@ namespace PARR.AIHIT
var respAreas = settingService.Get().Where(ra => ra.Group == AIHTITSettings.RespAreaGroupName).ToList(); var respAreas = settingService.Get().Where(ra => ra.Group == AIHTITSettings.RespAreaGroupName).ToList();
//Запускаем хранимую процедуру в АИХ ИТ и складываем в таблицу RawDataEKs, предварительно почистив старые данные //Запускаем хранимую процедуру в АИХ ИТ и складываем в таблицу RawDataEKs, предварительно почистив старые данные
foreach (var respArea in respAreas) //foreach (var respArea in respAreas)
{ //{
var eksFromAIHIT = aihitService.GetEKList(respArea.Value)?.ToList(); // var eksFromAIHIT = aihitService.GetEKList(respArea.Value)?.ToList();
if (eksFromAIHIT == null) // if (eksFromAIHIT == null)
continue; // continue;
//Удаляем текущие данные по зоне ответственности respArea // //Удаляем текущие данные по зоне ответственности respArea
var toDelete = rawDataEKService.Get().Where(rd => rd.ResponseArea == respArea.Value).ToList(); // var toDelete = rawDataEKService.Get().Where(rd => rd.ResponseArea == respArea.Value).ToList();
toDelete.ForEach(d => rawDataEKService.Delete(d)); // toDelete.ForEach(d => rawDataEKService.Delete(d));
foreach (var ek in eksFromAIHIT) // foreach (var ek in eksFromAIHIT)
{ // {
// создаем // // создаем
var mappedEK = mapper.Map<RawDataEK>(ek); // var mappedEK = mapper.Map<RawDataEK>(ek);
mappedEK.Id = Guid.NewGuid(); // mappedEK.Id = Guid.NewGuid();
mappedEK.DateCreated = DateTimeOffset.UtcNow; // mappedEK.DateCreated = DateTimeOffset.UtcNow;
if (!await rawDataEKService.CreateAsync(mappedEK) || !await rawDataEKService.CommitAsync()) // if (!await rawDataEKService.CreateAsync(mappedEK) || !await rawDataEKService.CommitAsync())
{ // {
logger.LogError($"Не удалось создать запись rawDataEK {mappedEK.ShortName}({mappedEK.IP})"); // logger.LogError($"Не удалось создать запись rawDataEK {mappedEK.ShortName}({mappedEK.IP})");
continue; // continue;
} // }
else // else
logger.LogInformation($"----- Создана запись rawDataEK {mappedEK.ShortName}({mappedEK.IP}) -----"); // logger.LogInformation($"----- Создана запись rawDataEK {mappedEK.ShortName}({mappedEK.IP}) -----");
} // }
} //}
//Разбираем сырые данные //Разбираем сырые данные

View File

@@ -1,8 +1,10 @@
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using PARR.BLL.Settings;
using PARR.DAL.Contracts; using PARR.DAL.Contracts;
using PARR.DAL.Models; using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces; using PARR.DAL.Services.Interfaces;
using PARR.EsppTemplateSync.Settings;
namespace PARR.EsppTemplateSync.Services namespace PARR.EsppTemplateSync.Services
{ {
@@ -11,16 +13,19 @@ namespace PARR.EsppTemplateSync.Services
private readonly ILogger<Manager> logger; private readonly ILogger<Manager> logger;
private readonly IServiceProvider serviceProvider; private readonly IServiceProvider serviceProvider;
private readonly IParserService parserService; private readonly IParserService parserService;
private readonly GlobalSettings globalSettings;
public Manager( public Manager(
ILogger<Manager> logger, ILogger<Manager> logger,
IServiceProvider serviceProvider, IServiceProvider serviceProvider,
IParserService parserService IParserService parserService,
GlobalSettings globalSettings
) )
{ {
this.logger = logger; this.logger = logger;
this.serviceProvider = serviceProvider; this.serviceProvider = serviceProvider;
this.parserService = parserService; this.parserService = parserService;
this.globalSettings = globalSettings;
} }
public Task<bool> ManageFileAsync(string path) public Task<bool> ManageFileAsync(string path)
@@ -98,17 +103,19 @@ namespace PARR.EsppTemplateSync.Services
else else
{ {
var isChanged = false; var isChanged = false;
var ignoreTemplateFieldsList = globalSettings.IgnoreTemplateFields?.Split(",").ToList().Select(t => t.Trim().ToLower());
foreach (var prop in template.GetType().GetProperties()) foreach (var prop in template.GetType().GetProperties())
{ {
if (prop == null) continue; if (prop == null) continue;
if (prop.Name == "Id" || if (ignoreTemplateFieldsList != null && ignoreTemplateFieldsList.Contains(prop.Name.Trim().ToLower())) continue;
prop.Name == "Status" || //if (prop.Name == "Id" ||
prop.Name == "DateCreated" || // prop.Name == "Status" ||
prop.Name == "DateModified" || // prop.Name == "DateCreated" ||
prop.Name == "StatusCode" // prop.Name == "DateModified" ||
) continue; // prop.Name == "StatusCode"
// ) continue;
var parrValue = template.GetType().GetProperty(prop.Name)?.GetValue(template, null); var parrValue = template.GetType().GetProperty(prop.Name)?.GetValue(template, null);
var esppValue = esppTemplate.GetType().GetProperty(prop.Name)?.GetValue(esppTemplate, null); var esppValue = esppTemplate.GetType().GetProperty(prop.Name)?.GetValue(esppTemplate, null);

View File

@@ -5,6 +5,7 @@
public MqSettings? MqSettings { get; set; } public MqSettings? MqSettings { get; set; }
public StorageSettings? StorageSettings { get; set; } public StorageSettings? StorageSettings { get; set; }
public string? IgnoreTemplateFields { get; set; }
} }
internal class MqSettings internal class MqSettings

View File

@@ -43,6 +43,7 @@
}, },
"StorageSettings": { "StorageSettings": {
"CheckIntervalSeconds": 30 "CheckIntervalSeconds": 30
} },
"IgnoreTemplateFields": "Id,Status,DateCreated,DateModified,StatusCode"
} }
} }

View File

@@ -38,7 +38,7 @@
"IncludeAddresses": "aihit@gvc.rzd" "IncludeAddresses": "aihit@gvc.rzd"
}, },
"WorkerSettings": { "WorkerSettings": {
"OccursEvery": "00:10:00.0" "OccursEvery": "12:00:00.0"
} }
} }