feat(aihitSyncer): В АИХИТ добавлены переносы строк в качестве разделителей. Обновил метод ParseAppsList
This commit is contained in:
@@ -54,107 +54,5 @@ namespace PARR.AIHITSyncer
|
|||||||
mqService.Dispose();
|
mqService.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
//private async Task SyncDataAsync(string msg)
|
|
||||||
//{
|
|
||||||
// //SyncService
|
|
||||||
// using (var scope = serviceProvider.CreateScope())
|
|
||||||
// {
|
|
||||||
// var service = scope.ServiceProvider.GetService<SyncerService>();
|
|
||||||
// //if (service == null)
|
|
||||||
// // throw new Exception("Не смог получить серивс IHostService, scope.ServiceProvider.GetService<IHostService>()");
|
|
||||||
|
|
||||||
// await service.StartAsync(msg);
|
|
||||||
|
|
||||||
// //await SyncHostToScopeAsync(hostService, objFromQuery);
|
|
||||||
|
|
||||||
// //await GetAppTypesAsync();
|
|
||||||
// }
|
|
||||||
|
|
||||||
//var objFromQuery = transformService.GetModelFromJson<AihitDataMq>(msg);
|
|
||||||
//if (objFromQuery == null)
|
|
||||||
// return;
|
|
||||||
|
|
||||||
//using (var scope = serviceProvider.CreateScope())
|
|
||||||
//{
|
|
||||||
// var hostService = scope.ServiceProvider.GetService<IHostService>();
|
|
||||||
// if (hostService == null)
|
|
||||||
// throw new Exception("Не смог получить серивс IHostService, scope.ServiceProvider.GetService<IHostService>()");
|
|
||||||
|
|
||||||
// await SyncHostToScopeAsync(hostService, objFromQuery);
|
|
||||||
|
|
||||||
// await GetAppTypesAsync();
|
|
||||||
//}
|
|
||||||
|
|
||||||
//logger.LogDebug($"Закончил работу с сообщением: {msg}");
|
|
||||||
//await Task.CompletedTask;
|
|
||||||
//}
|
|
||||||
|
|
||||||
//private async Task SyncHostToScopeAsync(IHostService hostService, AihitDataMq objFromQuery)
|
|
||||||
//{
|
|
||||||
// //ищем существующий хост в БД
|
|
||||||
// var host = await hostService.GetHostWithAppsByIpAsync(objFromQuery.IP);
|
|
||||||
// var isNew = false;
|
|
||||||
// //если не нашли - создаём
|
|
||||||
// if (host == null)
|
|
||||||
// {
|
|
||||||
// isNew = true;
|
|
||||||
// host = await CreateHostAsync(hostService, objFromQuery);
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// logger.LogDebug($"Найден хост в БД: {host!.Ek}({host.IP})");
|
|
||||||
// //проверям и обновляем поля
|
|
||||||
// await SyncHostFieldsAsync(hostService, host, objFromQuery);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// //получаем лист ПО из объекта
|
|
||||||
// var appsInObj = await GetAppInObjectAsync(host, objFromQuery);
|
|
||||||
|
|
||||||
// await SyncApplicationInHostAsync(host, appsInObj, !isNew);
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//private async Task<Host?> CreateHostAsync(IHostService hostService, AihitDataMq objFromQuery)
|
|
||||||
//{
|
|
||||||
// var id = Guid.NewGuid();
|
|
||||||
// var host = new Host
|
|
||||||
// {
|
|
||||||
// Id = id,
|
|
||||||
// Ek = objFromQuery.EK,
|
|
||||||
// IP = objFromQuery.IP,
|
|
||||||
// EkStatusCode = ResolveCode(objFromQuery.Status),
|
|
||||||
// WorkGroup = objFromQuery.WorkGroup,
|
|
||||||
// ResponseAreaCode = ResolveCode(objFromQuery.ResponseArea)
|
|
||||||
// };
|
|
||||||
|
|
||||||
// if (!await hostService.CreateAsync(host) || !await hostService.CommitAsync())
|
|
||||||
// logger.LogError($"Не удалось создать узел {host.Ek}({host.IP})");
|
|
||||||
// else
|
|
||||||
// logger.LogInformation($"----- Создан узел: {host.Id} -----");
|
|
||||||
|
|
||||||
|
|
||||||
// return await hostService.GetHostWithAppsByIpAsync(host.IP);
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//private int ResolveCode(string field)
|
|
||||||
//{
|
|
||||||
// var pattern = "\\d+";
|
|
||||||
// var regex = new Regex(pattern);
|
|
||||||
|
|
||||||
// int.TryParse(regex.Match(field).Value, out int result);
|
|
||||||
|
|
||||||
// return result;
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,5 +25,17 @@ namespace PARR.AIHITSyncer
|
|||||||
services.AddTransient<IAihitSyncer, AihitSyncer>();
|
services.AddTransient<IAihitSyncer, AihitSyncer>();
|
||||||
services.AddTransient<ISyncerService, SyncerService>();
|
services.AddTransient<ISyncerService, SyncerService>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IConfigurationBuilder AddAihitSyncerConfigurations(this IConfigurationBuilder builder, IServiceCollection services)
|
||||||
|
{
|
||||||
|
builder.AddDalConfigurations(services);
|
||||||
|
|
||||||
|
return builder;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AddAihitSyncerSettings(this IServiceCollection services, IConfiguration configuration)
|
||||||
|
{
|
||||||
|
services.AddDallSettings(configuration);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -183,7 +183,8 @@ namespace PARR.AIHITSyncer.Services
|
|||||||
}
|
}
|
||||||
|
|
||||||
int responseAreaCode = GetResponseAreaCodeFromStr(objFromQuery.ResponseArea) ?? 0;
|
int responseAreaCode = GetResponseAreaCodeFromStr(objFromQuery.ResponseArea) ?? 0;
|
||||||
if (responseAreaCode == 0) {
|
if (responseAreaCode == 0)
|
||||||
|
{
|
||||||
logger.LogWarning($"Ошибка при получении ЗО хоста: {objFromQuery.EK}, ЗО: {objFromQuery.ResponseArea}");
|
logger.LogWarning($"Ошибка при получении ЗО хоста: {objFromQuery.EK}, ЗО: {objFromQuery.ResponseArea}");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -286,6 +287,15 @@ namespace PARR.AIHITSyncer.Services
|
|||||||
|
|
||||||
private List<string> ParseAppsList(string appStr)
|
private List<string> ParseAppsList(string appStr)
|
||||||
{
|
{
|
||||||
|
// в АИХИТ стали появляться разделители \r \n находим их и заменяем на ,
|
||||||
|
if (appStr.Contains("\r") || appStr.Contains("\n"))
|
||||||
|
{
|
||||||
|
string orig = appStr;
|
||||||
|
appStr = appStr.Replace("\r", ",").Replace("\n", ",");
|
||||||
|
|
||||||
|
logger.LogDebug($"В строке найдены переносы, заменены на разделители. Исходная строка: {orig}. Результат: {appStr}");
|
||||||
|
}
|
||||||
|
|
||||||
var regex = new Regex("\\([^)]*\\)");
|
var regex = new Regex("\\([^)]*\\)");
|
||||||
|
|
||||||
if (regex.IsMatch(appStr))
|
if (regex.IsMatch(appStr))
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ builder.Services.AddLogging(config =>
|
|||||||
});
|
});
|
||||||
|
|
||||||
builder.Services.InstallAihitSyncerServices(builder.Configuration);
|
builder.Services.InstallAihitSyncerServices(builder.Configuration);
|
||||||
|
builder.Configuration.AddAihitSyncerConfigurations(builder.Services);
|
||||||
|
builder.Services.AddAihitSyncerSettings(builder.Configuration);
|
||||||
|
|
||||||
builder.Services.AddHostedService<Worker>();
|
builder.Services.AddHostedService<Worker>();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user