fix(aihit): после создания нового хоста не обновлялось его программное обеспечение
This commit is contained in:
@@ -131,13 +131,13 @@ namespace PARR.AIHIT
|
||||
if (ek.IP == null)
|
||||
continue;
|
||||
|
||||
var foundHost = await hostService.GetHostWithAppsAsync(ek.IP);
|
||||
var host = await hostService.GetHostWithAppsAsync(ek.IP);
|
||||
var mappedHost = mapper.Map<Host>(ek);
|
||||
//TODO Валидация по внешним связям
|
||||
|
||||
var hostApplications = await GetAndFillApplicationsAsync(ek);
|
||||
|
||||
if (foundHost == null)
|
||||
if (host == null)
|
||||
{
|
||||
// создаем
|
||||
if (!await hostService.CreateAsync(mappedHost) || !await hostService.CommitAsync())
|
||||
@@ -148,28 +148,28 @@ namespace PARR.AIHIT
|
||||
else
|
||||
logger.LogInformation($"----- Создан Host: {mappedHost.Id} -----");
|
||||
|
||||
|
||||
host = await hostService.GetHostWithAppsAsync(mappedHost.IP);
|
||||
// Синхронизация Applications
|
||||
await SyncApplicationAndHostAsync(foundHost, hostApplications);
|
||||
await SyncApplicationAndHostAsync(host, hostApplications);
|
||||
}
|
||||
else
|
||||
{
|
||||
// обновляем
|
||||
var isChanged = false;
|
||||
if (!foundHost.EkStatusCode!.Equals(mappedHost.EkStatusCode))
|
||||
if (!host.EkStatusCode!.Equals(mappedHost.EkStatusCode))
|
||||
{
|
||||
foundHost.EkStatusCode = mappedHost.EkStatusCode;
|
||||
host.EkStatusCode = mappedHost.EkStatusCode;
|
||||
isChanged = true;
|
||||
}
|
||||
else if (mappedHost.WorkGroup != null && (foundHost.WorkGroup == null || !foundHost.WorkGroup!.Equals(mappedHost.WorkGroup)))
|
||||
else if (mappedHost.WorkGroup != null && (host.WorkGroup == null || !host.WorkGroup!.Equals(mappedHost.WorkGroup)))
|
||||
{
|
||||
foundHost.WorkGroup = mappedHost.WorkGroup;
|
||||
host.WorkGroup = mappedHost.WorkGroup;
|
||||
isChanged = true;
|
||||
}
|
||||
|
||||
if (isChanged)
|
||||
{
|
||||
foundHost.DateModified = DateTimeOffset.UtcNow;
|
||||
host.DateModified = DateTimeOffset.UtcNow;
|
||||
if (!await hostService.CommitAsync())
|
||||
logger.LogError($"Не удалось обновить узел {mappedHost.IP}");
|
||||
else
|
||||
@@ -177,11 +177,18 @@ namespace PARR.AIHIT
|
||||
}
|
||||
|
||||
// Синхронизация Applications
|
||||
await SyncApplicationAndHostAsync(foundHost, hostApplications, true);
|
||||
await SyncApplicationAndHostAsync(host, hostApplications, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Метод синхронизации
|
||||
/// </summary>
|
||||
/// <param name="host">Хост</param>
|
||||
/// <param name="hostApplications">Список программного обеспечения</param>
|
||||
/// <param name="isUpdateDateModified">Признак обновления поля DateModified</param>
|
||||
/// <returns></returns>
|
||||
|
||||
private async Task SyncApplicationAndHostAsync(Host? host, List<Application> hostApplications, bool isUpdateDateModified = false)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user