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