fix(aihit): исправлен метод синхронизации, была ошибка сравнения Id и не удалялись лишние Application в Host
This commit is contained in:
@@ -63,7 +63,7 @@ namespace PARR.AIHIT
|
||||
var respAreas = await settingService.Get()
|
||||
.Where(ra => ra.Group == AIHTITSettings.RespAreaGroupName)
|
||||
.ToListAsync();
|
||||
//#if !DEBUG
|
||||
#if !DEBUG
|
||||
//Запускаем хранимую процедуру в АИХ ИТ и складываем в таблицу RawDataEKs, предварительно почистив старые данные
|
||||
foreach (var respArea in respAreas)
|
||||
{
|
||||
@@ -109,7 +109,7 @@ namespace PARR.AIHIT
|
||||
|
||||
logger.LogDebug($"-= Конец синхронизации данных об ЭК зоны ответственности {respArea.Name} =-");
|
||||
}
|
||||
//#endif
|
||||
#endif
|
||||
//Разбираем сырые данные
|
||||
|
||||
//Получаем интересующие статусы ЭК
|
||||
@@ -123,7 +123,7 @@ namespace PARR.AIHIT
|
||||
|
||||
//Берём только активные ЭК
|
||||
var eks = await rawDataEKService.Get()
|
||||
.Where(e => e.IsActive == "t" && (e.Status != null && statusList.Contains(e.Status.Trim())))
|
||||
.Where(e => e.IsActive == "t" && (e.Status != null && statusList.Contains(e.Status.Trim())) && e.EKFindCode.StartsWith("ВРТ-"))
|
||||
.ToListAsync();
|
||||
|
||||
foreach (var ek in eks)
|
||||
@@ -210,17 +210,20 @@ namespace PARR.AIHIT
|
||||
|
||||
foreach (var app in host.ApplicationsInHosts)
|
||||
{
|
||||
var appToRemove = hostApplications.FirstOrDefault(a => a.Id == app.Id);
|
||||
var appToRemove = hostApplications.FirstOrDefault(a => a.Id == app.ApplicationId);
|
||||
|
||||
if (appToRemove == null)
|
||||
{
|
||||
//todo remove appToRemove
|
||||
var obj = await appInHostService.Get().FirstOrDefaultAsync(t => t.ApplicationId == app.Id && t.HostId == host.Id);
|
||||
var obj = await appInHostService.Get().FirstOrDefaultAsync(t => t.ApplicationId == app.ApplicationId && t.HostId == host.Id);
|
||||
if (obj != null)
|
||||
{
|
||||
logger.LogInformation($"Host: {host.Ek}({host.IP}), удаление неактуального приложения Application {app.Application?.Name}");
|
||||
appInHostService.Delete(obj);
|
||||
|
||||
if (!await hostService.CommitAsync())
|
||||
logger.LogError($"Не удалось удалить Application {app.Application?.Name} узла {host.Ek}({host.IP})");
|
||||
|
||||
isUpdated = true;
|
||||
}
|
||||
}
|
||||
@@ -239,7 +242,7 @@ namespace PARR.AIHIT
|
||||
|
||||
private async Task<List<Application>> GetAndFillApplicationsAsync(RawDataEK vm)
|
||||
{
|
||||
logger.LogDebug($"Начало парсинга данных о программном обеспечении(СП, БД, ОС) из АИХ ИТ");
|
||||
//logger.LogDebug($"Начало парсинга данных о программном обеспечении(СП, БД, ОС) из АИХ ИТ");
|
||||
var applications = new List<Application>();
|
||||
|
||||
if (vm.APPType != null)
|
||||
@@ -273,7 +276,7 @@ namespace PARR.AIHIT
|
||||
}
|
||||
}
|
||||
|
||||
logger.LogDebug($"Конец парсинга данных о программном обеспечении(СП, БД, ОС) из АИХ ИТ");
|
||||
//logger.LogDebug($"Конец парсинга данных о программном обеспечении(СП, БД, ОС) из АИХ ИТ");
|
||||
|
||||
return applications;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user