diff --git a/PARR.AIHITRelationshipsSyncer/Services/Implementations/RelationshipsSyncSrevice.cs b/PARR.AIHITRelationshipsSyncer/Services/Implementations/RelationshipsSyncSrevice.cs index a1e94350..926e71a6 100644 --- a/PARR.AIHITRelationshipsSyncer/Services/Implementations/RelationshipsSyncSrevice.cs +++ b/PARR.AIHITRelationshipsSyncer/Services/Implementations/RelationshipsSyncSrevice.cs @@ -47,31 +47,7 @@ namespace PARR.AIHITRelationshipsSyncer.Services.Implementations { //if (childName.ToLower() != "рпа-робин-рцку-спиуи-прочее-26-гор") // continue; - //Ищем детей по имени - var child = unit.ChildUnits.FirstOrDefault(t => t.ChildUnit?.Name.ToLower() == childName!.ToLower().Trim()); - - //не нашли создаём и сразу пишем в базу, чтобы если попадуться дубликаты в списке они были созданы - if (child == null) - { - var childUnit = await GetUnitByNameAsync(childName!); - unit.ChildUnits.Add( - new UnitInUnit - { - ParentUnitId = unit.Id, - ChildUnitId = childUnit.Id, - DateCreated = DateTimeOffset.UtcNow, - DateSynced = DateTimeOffset.UtcNow - } - ); - - if (!await unitService.CommitAsync()) - logger.LogError($"Не удалось создать связь Unit {unit.Name} с {childUnit.Name}"); - else - logger.LogInformation($"----- Создана новая связь Unit {unit.Name} с {childUnit.Name} -----"); - } - //Для всех обновляем дату синхронизации - else - child.DateSynced = DateTimeOffset.UtcNow; + await SyncChildUnit(unit, childName!); } //После проверки пришедших к нам из АИХ ИТ дочерних связей удаляем лишние/уже не существующие в базе @@ -108,6 +84,35 @@ namespace PARR.AIHITRelationshipsSyncer.Services.Implementations } } + private async Task SyncChildUnit(Unit unit, string childName) + { + //Ищем детей по имени + var child = unit.ChildUnits.FirstOrDefault(t => t.ChildUnit?.Name.ToLower() == childName!.ToLower().Trim()); + + //Не нашли создаём и сразу пишем в базу, чтобы если попадуться дубликаты в списке они были созданы + if (child == null) + { + var childUnit = await GetUnitByNameAsync(childName!); + unit.ChildUnits.Add( + new UnitInUnit + { + ParentUnitId = unit.Id, + ChildUnitId = childUnit.Id, + DateCreated = DateTimeOffset.UtcNow, + DateSynced = DateTimeOffset.UtcNow + } + ); + + if (!await unitService.CommitAsync()) + logger.LogError($"Не удалось создать связь Unit {unit.Name} с {childUnit.Name}"); + else + logger.LogInformation($"----- Создана новая связь Unit {unit.Name} с {childUnit.Name} -----"); + } + //Для всех обновляем дату синхронизации + else + child.DateSynced = DateTimeOffset.UtcNow; + } + /// /// Удаление дочерних связей у ЭК @@ -159,6 +164,7 @@ namespace PARR.AIHITRelationshipsSyncer.Services.Implementations return await unitService.Get() .Include(u => u.ChildUnits) + .ThenInclude(t=>t.ChildUnit) .FirstAsync(u => u.Name.ToLower() == ekName.ToLower().Trim()); } }