From 26c627fe93007335f3c458c816d8b84a58e96f6c Mon Sep 17 00:00:00 2001 From: Mikhail Kuznetsov Date: Wed, 17 Jan 2024 15:58:51 +1000 Subject: [PATCH] =?UTF-8?q?fix(aihit):=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20?= =?UTF-8?q?=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=BE=D0=B3=D0=BE=20=D1=85=D0=BE=D1=81=D1=82=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D1=8F=D0=BB?= =?UTF-8?q?=D0=BE=D1=81=D1=8C=20=D0=B5=D0=B3=D0=BE=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B3=D1=80=D0=B0=D0=BC=D0=BC=D0=BD=D0=BE=D0=B5=20=D0=BE=D0=B1?= =?UTF-8?q?=D0=B5=D1=81=D0=BF=D0=B5=D1=87=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PARR.AIHIT/AIHIT/Syncher.cs | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/PARR.AIHIT/AIHIT/Syncher.cs b/PARR.AIHIT/AIHIT/Syncher.cs index 4c87dcdc..7e2d27c5 100644 --- a/PARR.AIHIT/AIHIT/Syncher.cs +++ b/PARR.AIHIT/AIHIT/Syncher.cs @@ -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(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); } } } + /// + /// Метод синхронизации + /// + /// Хост + /// Список программного обеспечения + /// Признак обновления поля DateModified + /// private async Task SyncApplicationAndHostAsync(Host? host, List hostApplications, bool isUpdateDateModified = false) {