Игнорируемые поля при сравнении 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();
//Запускаем хранимую процедуру в АИХ ИТ и складываем в таблицу 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<RawDataEK>(ek);
// foreach (var ek in eksFromAIHIT)
// {
// // создаем
// var mappedEK = mapper.Map<RawDataEK>(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}) -----");
// }
//}
//Разбираем сырые данные

View File

@@ -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<Manager> logger;
private readonly IServiceProvider serviceProvider;
private readonly IParserService parserService;
private readonly GlobalSettings globalSettings;
public Manager(
ILogger<Manager> logger,
IServiceProvider serviceProvider,
IParserService parserService
IParserService parserService,
GlobalSettings globalSettings
)
{
this.logger = logger;
this.serviceProvider = serviceProvider;
this.parserService = parserService;
this.globalSettings = globalSettings;
}
public Task<bool> 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);

View File

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

View File

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

View File

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