72 lines
2.8 KiB
C#
72 lines
2.8 KiB
C#
using Microsoft.Extensions.Logging;
|
|
using PARR.AIHITRelationshipsSyncer.Services.Interfaces;
|
|
using PARR.AIHITRelationshipsSyncer.Settings;
|
|
using PARR.BLL.Services.Interfaces;
|
|
|
|
namespace PARR.AIHITRelationshipsSyncer
|
|
{
|
|
internal class RelationshipsSyncer : IRelationshipsSyncer
|
|
{
|
|
private readonly ILogger<RelationshipsSyncer> logger;
|
|
private readonly IIntervalService intervalService;
|
|
private readonly IAihitService aihitService;
|
|
private readonly IRelationshipsSyncService relationshipsSyncService;
|
|
private readonly WorkerSettings workerSettings;
|
|
|
|
public RelationshipsSyncer(
|
|
ILogger<RelationshipsSyncer> logger,
|
|
IIntervalService intervalService,
|
|
IAihitService aihitService,
|
|
IRelationshipsSyncService relationshipsSyncService,
|
|
WorkerSettings workerSettings
|
|
)
|
|
{
|
|
this.logger = logger;
|
|
this.intervalService = intervalService;
|
|
this.aihitService = aihitService;
|
|
this.relationshipsSyncService = relationshipsSyncService;
|
|
this.workerSettings = workerSettings;
|
|
}
|
|
|
|
|
|
public async Task StartAsync()
|
|
{
|
|
logger.LogInformation("Запуск сервиса синхронизации связей иерархии ЭК из АИХ ИТ в ПАРР");
|
|
|
|
await intervalService.IntervalInitAsync(async () =>
|
|
{
|
|
try
|
|
{
|
|
logger.LogInformation($"Начата загрузка иерархических связей между ЭК из АИХ ИТ");
|
|
|
|
var aihitdata = aihitService.GetData();
|
|
|
|
var aihitDataCount = aihitdata?.Count();
|
|
|
|
if (aihitdata == null || aihitDataCount == 0)
|
|
{
|
|
logger.LogInformation("АИХ ИТ вернул пустые данные");
|
|
return;
|
|
}
|
|
|
|
//File.WriteAllText("MockData.json", aihitdata.ToJson());
|
|
//string text = File.OpenText("MockData.json").ReadToEnd();
|
|
//var aihitdata = JsonSerializer.Deserialize<List<AihitData>>(text);
|
|
|
|
await relationshipsSyncService.SyncAsync(aihitdata.ToList());
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.LogError(ex, "Ошибка синхронизации иерархических данных Unit из АИХ ИТ в ПАРР");
|
|
}
|
|
finally
|
|
{
|
|
logger.LogInformation($"Завершена загрузка иерархических связей между ЭК из АИХ ИТ");
|
|
}
|
|
|
|
}, workerSettings.RepeatEvery);
|
|
}
|
|
}
|
|
}
|