fix(aihit): изменены уровни журналирования, исправлена ошибка Null данных в рабочей группе, как оказалось АИХ ИТ одпускает такое значение
This commit is contained in:
@@ -63,24 +63,28 @@ 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)
|
||||
{
|
||||
logger.LogDebug($"-= Получение данных об ЭК зоны ответственности {respArea.Name} =-");
|
||||
var eksFromAIHIT = aihitService.GetEKList(respArea.Value)?.ToList();
|
||||
|
||||
if (eksFromAIHIT == null)
|
||||
continue;
|
||||
|
||||
//Удаляем текущие данные по зоне ответственности respArea
|
||||
logger.LogDebug($"-= Удаление существующих данных об ЭК зоны ответственности {respArea.Name} =-");
|
||||
var toDelete = rawDataEKService.Get().Where(rd => rd.ResponseArea == respArea.Value).ToList();
|
||||
toDelete.ForEach(d => rawDataEKService.Delete(d));
|
||||
|
||||
if(!await rawDataEKService.CommitAsync())
|
||||
{
|
||||
logger.LogError($"Не удалось создать удалить записи в rawDataEK зоны ответственности {respArea.Name}");
|
||||
continue;
|
||||
}
|
||||
|
||||
logger.LogDebug($"-= Создание новых записей об ЭК зоны ответственности {respArea.Name} =-");
|
||||
foreach (var ek in eksFromAIHIT)
|
||||
{
|
||||
// создаем
|
||||
@@ -96,12 +100,16 @@ namespace PARR.AIHIT
|
||||
continue;
|
||||
}
|
||||
else
|
||||
logger.LogInformation($"----- Создана запись rawDataEK {mappedEK.ShortName}({mappedEK.IP}), зона ответственности {respArea.Name} -----");
|
||||
logger.LogInformation($"Создана запись rawDataEK {mappedEK.ShortName}({mappedEK.IP}), зона ответственности {respArea.Name}");
|
||||
}
|
||||
|
||||
logger.LogDebug($"-= Запись в базу данных записей об ЭК зоны ответственности {respArea.Name} ");
|
||||
if (!await rawDataEKService.CommitAsync())
|
||||
logger.LogError($"Информация о хостах зоны ответственности {respArea.Name} не записана ");
|
||||
|
||||
logger.LogDebug($"-= Конец синхронизации данных об ЭК зоны ответственности {respArea.Name} =-");
|
||||
}
|
||||
#endif
|
||||
//#endif
|
||||
//Разбираем сырые данные
|
||||
|
||||
//Получаем интересующие статусы ЭК
|
||||
@@ -113,7 +121,7 @@ namespace PARR.AIHIT
|
||||
if (statusList == null || statusList.Count == 0)
|
||||
return;
|
||||
|
||||
//Берём только активные шаблоны
|
||||
//Берём только активные ЭК
|
||||
var eks = await rawDataEKService.Get()
|
||||
.Where(e => e.IsActive == "t" && (e.Status != null && statusList.Contains(e.Status.Trim())))
|
||||
.ToListAsync();
|
||||
@@ -153,7 +161,7 @@ namespace PARR.AIHIT
|
||||
foundHost.EkStatusCode = mappedHost.EkStatusCode;
|
||||
isChanged = true;
|
||||
}
|
||||
else if (mappedHost.WorkGroup != null && !foundHost.WorkGroup!.Equals(mappedHost.WorkGroup))
|
||||
else if (mappedHost.WorkGroup != null && (foundHost.WorkGroup == null || !foundHost.WorkGroup!.Equals(mappedHost.WorkGroup)))
|
||||
{
|
||||
foundHost.WorkGroup = mappedHost.WorkGroup;
|
||||
isChanged = true;
|
||||
@@ -165,7 +173,7 @@ namespace PARR.AIHIT
|
||||
if (!await hostService.CommitAsync())
|
||||
logger.LogError($"Не удалось обновить узел {mappedHost.IP}");
|
||||
else
|
||||
logger.LogInformation($"----- Обновлён Host: {mappedHost.Id} -----");
|
||||
logger.LogInformation($"Обновлён Host: {mappedHost.Id}");
|
||||
}
|
||||
|
||||
// Синхронизация Applications
|
||||
@@ -181,7 +189,7 @@ namespace PARR.AIHIT
|
||||
if (host == null)
|
||||
return;
|
||||
|
||||
logger.LogInformation($"--- Host: {host.Id}, начало синхронизации приложений ({hostApplications.Count()}) ---");
|
||||
logger.LogDebug($"Host: {host.Ek}({host.IP}), начало синхронизации приложений ({hostApplications.Count()}) ");
|
||||
|
||||
foreach (var changedHostApp in hostApplications)
|
||||
{
|
||||
@@ -190,11 +198,11 @@ namespace PARR.AIHIT
|
||||
if (exist == null)
|
||||
{
|
||||
//add
|
||||
logger.LogInformation($"Host: {host.Id}, добавление нового приложения Application {changedHostApp.Name}");
|
||||
logger.LogInformation($"Host: {host.Ek}({host.IP}), добавление нового приложения Application {changedHostApp.Name}");
|
||||
|
||||
var newAppHost = new ApplicationInHost { Id = Guid.NewGuid(), ApplicationId = changedHostApp.Id, HostId = host.Id };
|
||||
if (!await appInHostService.CreateAsync(newAppHost))
|
||||
logger.LogError($"Не удалось создать ApplicationInHost {changedHostApp.Name}, host: {host.Id}");
|
||||
logger.LogError($"Не удалось создать ApplicationInHost {changedHostApp.Name}, host: {host.Ek}({host.IP})");
|
||||
|
||||
isUpdated = true;
|
||||
}
|
||||
@@ -210,7 +218,7 @@ namespace PARR.AIHIT
|
||||
var obj = await appInHostService.Get().FirstOrDefaultAsync(t => t.ApplicationId == app.Id && t.HostId == host.Id);
|
||||
if (obj != null)
|
||||
{
|
||||
logger.LogInformation($"Host: {host.Id}, удаление неактуального приложения Application {app.Application?.Name}");
|
||||
logger.LogInformation($"Host: {host.Ek}({host.IP}), удаление неактуального приложения Application {app.Application?.Name}");
|
||||
appInHostService.Delete(obj);
|
||||
|
||||
isUpdated = true;
|
||||
@@ -222,16 +230,16 @@ namespace PARR.AIHIT
|
||||
host.DateModified = DateTimeOffset.UtcNow;
|
||||
|
||||
if (!await appInHostService.CommitAsync())
|
||||
logger.LogError($"Не удалось обновить ApplicationInHost для Host: {host.Id}");
|
||||
logger.LogError($"Не удалось обновить ApplicationInHost для Host: {host.Ek}({host.IP})");
|
||||
|
||||
logger.LogInformation($"=== Host: {host.Id} конец синхронизации приложений ===");
|
||||
logger.LogDebug($"Host: {host.Ek}({host.IP} конец синхронизации приложений");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private async Task<List<Application>> GetAndFillApplicationsAsync(RawDataEK vm)
|
||||
{
|
||||
logger.LogInformation($"--- Начало парсинга данных о программном обеспечении(СП, БД, ОС) из АИХ ИТ ---");
|
||||
logger.LogDebug($"Начало парсинга данных о программном обеспечении(СП, БД, ОС) из АИХ ИТ");
|
||||
var applications = new List<Application>();
|
||||
|
||||
if (vm.APPType != null)
|
||||
@@ -265,7 +273,7 @@ namespace PARR.AIHIT
|
||||
}
|
||||
}
|
||||
|
||||
logger.LogInformation($"=== Конец парсинга данных о программном обеспечении(СП, БД, ОС) из АИХ ИТ ===");
|
||||
logger.LogDebug($"Конец парсинга данных о программном обеспечении(СП, БД, ОС) из АИХ ИТ");
|
||||
|
||||
return applications;
|
||||
}
|
||||
@@ -289,7 +297,6 @@ namespace PARR.AIHIT
|
||||
return new List<string>();
|
||||
|
||||
var dbList = dbField.Split(";").Distinct().ToList();
|
||||
//dbList.ForEach(item => item.Trim());
|
||||
|
||||
return dbList;
|
||||
}
|
||||
@@ -301,13 +308,12 @@ namespace PARR.AIHIT
|
||||
return new List<string>();
|
||||
|
||||
var osList = osField.Split(";").Distinct().ToList();
|
||||
//osList.ForEach(item => item.Trim());
|
||||
|
||||
return osList;
|
||||
}
|
||||
|
||||
|
||||
private async Task<Application?> CreateAppIfNotExistAsync(string appName, ApplicationTypesEnum type)//Application application)
|
||||
private async Task<Application?> CreateAppIfNotExistAsync(string appName, ApplicationTypesEnum type)
|
||||
{
|
||||
if (string.IsNullOrEmpty(appName) || string.IsNullOrWhiteSpace(appName)) return null;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user