Merge branch 'dev' of http://gitlab.dvgd.oao.rzd/devptk/parr/parr_api into dev
This commit is contained in:
@@ -131,13 +131,13 @@ namespace PARR.AIHIT
|
|||||||
if (ek.IP == null)
|
if (ek.IP == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
var foundHost = await hostService.GetHostWithAppsAsync(ek.IP);
|
var host = await hostService.GetHostWithAppsAsync(ek.IP);
|
||||||
var mappedHost = mapper.Map<Host>(ek);
|
var mappedHost = mapper.Map<Host>(ek);
|
||||||
//TODO Валидация по внешним связям
|
//TODO Валидация по внешним связям
|
||||||
|
|
||||||
var hostApplications = await GetAndFillApplicationsAsync(ek);
|
var hostApplications = await GetAndFillApplicationsAsync(ek);
|
||||||
|
|
||||||
if (foundHost == null)
|
if (host == null)
|
||||||
{
|
{
|
||||||
// создаем
|
// создаем
|
||||||
if (!await hostService.CreateAsync(mappedHost) || !await hostService.CommitAsync())
|
if (!await hostService.CreateAsync(mappedHost) || !await hostService.CommitAsync())
|
||||||
@@ -148,28 +148,28 @@ namespace PARR.AIHIT
|
|||||||
else
|
else
|
||||||
logger.LogInformation($"----- Создан Host: {mappedHost.Id} -----");
|
logger.LogInformation($"----- Создан Host: {mappedHost.Id} -----");
|
||||||
|
|
||||||
|
host = await hostService.GetHostWithAppsAsync(mappedHost.IP);
|
||||||
// Синхронизация Applications
|
// Синхронизация Applications
|
||||||
await SyncApplicationAndHostAsync(foundHost, hostApplications);
|
await SyncApplicationAndHostAsync(host, hostApplications);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// обновляем
|
// обновляем
|
||||||
var isChanged = false;
|
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;
|
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;
|
isChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isChanged)
|
if (isChanged)
|
||||||
{
|
{
|
||||||
foundHost.DateModified = DateTimeOffset.UtcNow;
|
host.DateModified = DateTimeOffset.UtcNow;
|
||||||
if (!await hostService.CommitAsync())
|
if (!await hostService.CommitAsync())
|
||||||
logger.LogError($"Не удалось обновить узел {mappedHost.IP}");
|
logger.LogError($"Не удалось обновить узел {mappedHost.IP}");
|
||||||
else
|
else
|
||||||
@@ -177,11 +177,18 @@ namespace PARR.AIHIT
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Синхронизация Applications
|
// Синхронизация 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)
|
private async Task SyncApplicationAndHostAsync(Host? host, List<Application> hostApplications, bool isUpdateDateModified = false)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user