refactor(aihit): удален старый проект синхронизации aihit. Удалены таблицы из БД.
This commit is contained in:
@@ -1,15 +0,0 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using PARR.AIHIT.Models;
|
||||
|
||||
namespace PARR.AIHIT.Context
|
||||
{
|
||||
internal class AIHITContext : DbContext
|
||||
{
|
||||
public AIHITContext(DbContextOptions<AIHITContext> options) : base(options) { }
|
||||
|
||||
|
||||
|
||||
public DbSet<EK> EKs { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
namespace PARR.AIHIT
|
||||
{
|
||||
public interface ISyncher
|
||||
{
|
||||
Task InvokeFromDatabase();
|
||||
}
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
using AutoMapper;
|
||||
using PARR.AIHIT.MappingProfiles.Resolvers;
|
||||
using PARR.AIHIT.Models;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.Models.AIHIT;
|
||||
|
||||
namespace PARR.AIHIT.MappingProfiles
|
||||
{
|
||||
internal class RequestToDomain : Profile
|
||||
{
|
||||
public RequestToDomain()
|
||||
{
|
||||
//CreateMap<XmlNode, V1_Host>()
|
||||
// .ForMember(d => d.HostName, o => o.MapFrom(s => (s.Attributes!["ХОСТ"] != null) ? s.Attributes!["ХОСТ"]!.Value.Trim() : ""))
|
||||
// .ForMember(d => d.IP, o => o.MapFrom(s => s.Attributes!["IP_АДРЕС"]!.Value.Trim()))
|
||||
// .ForMember(d => d.RegionalEK, o => o.MapFrom(s => s.Attributes!["РЕГИОНАЛЬНЫЙ_ЭК"]!.Value.Trim()))
|
||||
// .ForMember(d => d.LinkEK, o => o.MapFrom(s => s.Attributes!["СВЯЗАННЫЙ_ЭК"]!.Value.Trim()))
|
||||
// .ForMember(d => d.Status, o => o.MapFrom(s => s.Attributes!["СТАТУС"]!.Value.Trim()))
|
||||
// .ForMember(d => d.WorkGroup, o => o.MapFrom(s => (s.Attributes!["РАБОЧАЯ_ГР_ОТВ_ЗА_ЭК"] != null) ? s.Attributes!["РАБОЧАЯ_ГР_ОТВ_ЗА_ЭК"]!.Value.Trim() : ""))
|
||||
// .ForMember(d => d.Responsible, o => o.MapFrom(s => s.Attributes!["ОТВЕТСТВЕННЫЙ_ЗА_ЭК"]!.Value.Trim()));
|
||||
|
||||
CreateMap<RawDataEK, Host>()
|
||||
.ForMember(d => d.Ek, o => o.MapFrom(s => s.EKFindCode))//TODO Определить имя хоста по
|
||||
.ForMember(d => d.IP, o => o.MapFrom(s => s.IP))
|
||||
.ForMember(d => d.EkStatusCode, o => o.MapFrom<EkStatusCodeResolver>())
|
||||
//.ForMember(d => d.StatusStr, o => o.MapFrom(s => s.Status))
|
||||
.ForMember(d => d.WorkGroup, o => o.MapFrom(s => s.WorkGroup))
|
||||
.ForMember(d => d.ResponseAreaCode, o => o.MapFrom<ResponseAreaCodeResolver>())
|
||||
.ForMember(d => d.ResponseArea, o => o.Ignore());
|
||||
//.ForMember(d => d.ResponseAreaStr, o => o.MapFrom(s => s.ResponseArea));
|
||||
//CreateMap<PARR.DAL.Models.Host, PARR.DAL.Models.Host>()
|
||||
// .ForMember(d => d.HostName, o => o.MapFrom(s => s.HostName))
|
||||
// .ForMember(d => d.IP, o => o.MapFrom(s => s.IP))
|
||||
// .ForMember(d => d.RegionalEK, o => o.MapFrom(s => s.RegionalEK))
|
||||
// .ForMember(d => d.LinkEK, o => o.MapFrom(s => s.LinkEK))
|
||||
// .ForMember(d => d.Status, o => o.MapFrom(s => s.Status))
|
||||
// .ForMember(d => d.WorkGroup, o => o.MapFrom(s => s.WorkGroup))
|
||||
// .ForMember(d => d.Responsible, o => o.MapFrom(s => s.Responsible))
|
||||
// .ForMember(d => d.OS, o => o.MapFrom(s => s.OS))
|
||||
// .ForMember(d => d.DB, o => o.MapFrom(s => s.DB))
|
||||
// .ForMember(d => d.APP, o => o.MapFrom(s => s.APP));
|
||||
|
||||
CreateMap<EK, RawDataEK>();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
using AutoMapper;
|
||||
using PARR.DAL.Contracts;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.Models.AIHIT;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace PARR.AIHIT.MappingProfiles.Resolvers
|
||||
{
|
||||
internal class EkStatusCodeResolver : IValueResolver<RawDataEK, Host, int>
|
||||
{
|
||||
public int Resolve(RawDataEK source, Host destination, int destMember, ResolutionContext context)
|
||||
{
|
||||
var pattern = "\\d+";
|
||||
var regex = new Regex(pattern);
|
||||
|
||||
int.TryParse(regex.Match(source.Status!).Value, out int result);
|
||||
|
||||
if (!Enum.IsDefined(typeof(EkStatusEnum), result))
|
||||
throw new Exception($"Неверный статус ЭК {source.Status}");
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
using AutoMapper;
|
||||
using PARR.DAL.Contracts;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.Models.AIHIT;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace PARR.AIHIT.MappingProfiles.Resolvers
|
||||
{
|
||||
internal class ResponseAreaCodeResolver : IValueResolver<RawDataEK, Host, int>
|
||||
{
|
||||
public int Resolve(RawDataEK source, Host destination, int destMember, ResolutionContext context)
|
||||
{
|
||||
var pattern = "\\d+";
|
||||
var regex = new Regex(pattern);
|
||||
|
||||
int.TryParse(regex.Match(source.ResponseArea!).Value, out int result);
|
||||
|
||||
if (result == 0)
|
||||
return (int)ResponseAreaEnum.gvc;
|
||||
|
||||
if (!Enum.IsDefined(typeof(ResponseAreaEnum), result))
|
||||
throw new Exception($"Неверный код дороги {source.ResponseArea}");
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,100 +0,0 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace PARR.AIHIT.Models
|
||||
{
|
||||
public class EK
|
||||
{
|
||||
[Column("IP_АДРЕС")]
|
||||
public string? IP { get; set; }
|
||||
[Column("МЕТКА")]
|
||||
public string? Metka { get; set; }
|
||||
[Column("АКТИВЕН")]
|
||||
public string? IsActive { get; set; }
|
||||
[Column("ВАЖНЫЙ_ЭК")]
|
||||
public string? IsImportant { get; set; }
|
||||
[Column("ВРЕМЯ_СОЗДАНИЯ")]
|
||||
public DateTime? CreateTime { get; set; }
|
||||
[Column("ДОПОЛНИТЕЛЬНАЯ_ИНФОРМАЦИЯ")]
|
||||
public string? AdditionalInfo { get; set; }
|
||||
[Column("ЗОНА_ОТВЕТСТВЕННОСТИ")]
|
||||
public string? ResponseArea { get; set; }
|
||||
[Column("КАТЕГОРИЯ_ЭК")]
|
||||
public string? EKCategory { get; set; }
|
||||
[Column("КОД_ПОИСКА_ЭК")]
|
||||
public string? EKFindCode { get; set; }
|
||||
[Column("КОД_ПРОДУКТА")]
|
||||
public string? ProductCode { get; set; }
|
||||
[Column("КОД_УСЛУГИ")]
|
||||
public string? ServiceCode { get; set; }
|
||||
[Column("КРАТКОЕ_НАИМЕНОВАНИЕ")]
|
||||
public string? ShortName { get; set; }
|
||||
[Column("ОТВЕТСТВЕННЫЙ_ЗА_ЭК")]
|
||||
public string? ResponsibleByEK { get; set; }
|
||||
[Column("ПЛАНОВОЕ_ВРЕМЯ_ВОССТАНОВЛЕНИЯ")]
|
||||
public DateTime? PlannedTimeToRepair { get; set; }
|
||||
[Column("ПОДКАТЕГОРИЯ_ЭК")]
|
||||
public string? EKSubCategory { get; set; }
|
||||
[Column("ПОЛНОЕ_НАИМЕНОВАНИЕ")]
|
||||
public string? FullName { get; set; }
|
||||
[Column("ПРЕДПИСАНИЕ")]
|
||||
public string? Prescription { get; set; }
|
||||
[Column("ПРЕДПРИЯТИЕ")]
|
||||
public string? Company { get; set; }
|
||||
[Column("РАБОЧАЯ_ГР_ОТВ_ЗА_ЭК")]
|
||||
public string? WorkGroup { get; set; }
|
||||
[Column("РАСПОЛОЖЕНИЕ")]
|
||||
public string? Location { get; set; }
|
||||
[Column("РЕВИЗОР_ЭК")]
|
||||
public string? EKRevizor { get; set; }
|
||||
[Column("РЕГИСТРАТОР_ЭК")]
|
||||
public string? EKRegister { get; set; }
|
||||
[Column("СЕТЕВОЕ_ИМЯ")]
|
||||
public string? NetworkName { get; set; }
|
||||
[Column("СТАТУС")]
|
||||
public string? Status { get; set; }
|
||||
[Column("ТИП_ЭК")]
|
||||
public string? EKType { get; set; }
|
||||
[Column("ФАКТИЧЕСКОЕ_ЗАВЕРШЕНИЕ_ЭКСПЛУАТАЦИИ")]
|
||||
public DateTime? EndExplotationDate { get; set; }
|
||||
[Column("ФАКТИЧЕСКОЕ_НАЧАЛО_ЭКСПЛУАТАЦИИ")]
|
||||
public DateTime? StartExplotationDate { get; set; }
|
||||
[Column("ЦЕЛЕВОЕ_ВРЕМЯ_ВОССТАНОВЛЕНИЯ")]
|
||||
public string? TargetRepairTime { get; set; }
|
||||
[Column("SYSMODTIME")]
|
||||
public DateTime? SysModTime { get; set; }
|
||||
[Column("SYSMODUSER")]
|
||||
public string? SysModUser { get; set; }
|
||||
[Column("НОВЫЙ_КОД_ПОИСКА")]
|
||||
public string? NewEKFindCode { get; set; }
|
||||
[Column("СТАРЫЙ_КОД_ПОИСКА")]
|
||||
public string? OldEKFindCode { get; set; }
|
||||
[Column("НАПРАВЛЕНИЕ_ЦТС_ЦК")]
|
||||
public string? CTSDirection { get; set; }
|
||||
[Key]
|
||||
[Column("ID")]
|
||||
public int? AIHID { get; set; }
|
||||
[Column("недостоверные_данные")]
|
||||
public char? IsUnreliableData { get; set; }
|
||||
[Column("РГ_смены")]
|
||||
public string? ShiftWorkGroup { get; set; }
|
||||
[Column("Клиентское_ПО")]
|
||||
public string? ClientSoftware { get; set; }
|
||||
[Column("Клиентская_ОС")]
|
||||
public string? ClientOS { get; set; }
|
||||
[Column("Тип СУБД")]
|
||||
public string? DBType { get; set; }
|
||||
[Column("Тип сервера приложений")]
|
||||
public string? APPType { get; set; }
|
||||
[Column("Тип сервера ЦК БС")]
|
||||
public string? CKBSServerType { get; set; }
|
||||
[Column("Тип сервера ИБ")]
|
||||
public string? IBServerType { get; set; }
|
||||
[Column("Тип сервера инфраструктуры")]
|
||||
public string? InfrastructureServerType { get; set; }
|
||||
[Column("Тип сервера мониторинга")]
|
||||
public string? MonitoringServerType { get; set; }
|
||||
[Column("ОС")]
|
||||
public string? OSType { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="12.0.1" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.9" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="7.0.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\PARR.BLL\PARR.BLL.csproj" />
|
||||
<ProjectReference Include="..\..\PARR.DAL\PARR.DAL.csproj" />
|
||||
<ProjectReference Include="..\..\PARR.Mail\PARR.Mail\PARR.Mail.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"profiles": {
|
||||
"PARR.AIHIT": {
|
||||
"commandName": "Project",
|
||||
"launchBrowser": true,
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
},
|
||||
"applicationUrl": "https://localhost:1090;http://localhost:1092"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using PARR.AIHIT.Context;
|
||||
using PARR.AIHIT.Models;
|
||||
|
||||
namespace PARR.AIHIT.Services
|
||||
{
|
||||
internal class AIHITService : IAIHITService
|
||||
{
|
||||
private readonly AIHITContext context;
|
||||
private readonly ILogger<AIHITService> logger;
|
||||
|
||||
public AIHITService(AIHITContext context, ILogger<AIHITService> logger)
|
||||
{
|
||||
this.context = context;
|
||||
this.logger = logger;
|
||||
}
|
||||
public List<EK>? GetEKList(string respArea)
|
||||
{
|
||||
var parameters = new List<SqlParameter>() { new SqlParameter("@зо",respArea)};
|
||||
|
||||
try
|
||||
{
|
||||
var result = context.Set<EK>().FromSqlRaw($"EXEC mao2.dbo.sp_IPP_PARR_PTK_get_EK @зо", parameters.ToArray()).ToList();
|
||||
|
||||
if (result == null || !result.Any())
|
||||
{
|
||||
logger.LogWarning($"Процедура sp_IPP_PARR_PTK_get_EK вернула пустой список ЭК");
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.LogError(ex, $"Ошибка при выполнении ХП sp_IPP_PARR_PTK_get_EK({respArea})");
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
using PARR.AIHIT.Models;
|
||||
|
||||
namespace PARR.AIHIT.Services
|
||||
{
|
||||
internal interface IAIHITService
|
||||
{
|
||||
List<EK>? GetEKList(string respArea);
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
namespace PARR.AIHIT.Settings
|
||||
{
|
||||
internal class SyncherSettings
|
||||
{
|
||||
public int OccursEvery { get; set; }
|
||||
public string? IncludeAddresses { get; set; }
|
||||
|
||||
public List<string> IncludeAddressesArray => IncludeAddresses == null ? new List<string>() : IncludeAddresses.Split(",").ToList();
|
||||
}
|
||||
}
|
||||
@@ -1,376 +0,0 @@
|
||||
using AutoMapper;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using PARR.AIHIT.Services;
|
||||
using PARR.DAL.Contracts;
|
||||
using PARR.DAL.Extensions;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.Models.AIHIT;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
using PARR.DAL.Services.Interfaces.AIHIT;
|
||||
using System.Text;
|
||||
|
||||
namespace PARR.AIHIT
|
||||
{
|
||||
internal class Syncher : ISyncher
|
||||
{
|
||||
private readonly ILogger<Syncher> logger;
|
||||
private readonly IHostService hostService;
|
||||
private readonly IMapper mapper;
|
||||
private readonly IApplicationService appService;
|
||||
private readonly IApplicationTypeService appTypeService;
|
||||
private readonly IApplicationInHostService appInHostService;
|
||||
private readonly IRawDataEKService rawDataEKService;
|
||||
private readonly ISettingService settingService;
|
||||
private readonly IAIHITService aihitService;
|
||||
|
||||
public List<ApplicationType> AppTypes { get; private set; } = new List<ApplicationType>();
|
||||
|
||||
public Syncher(
|
||||
ILogger<Syncher> logger,
|
||||
IHostService hostService,
|
||||
IMapper mapper,
|
||||
IApplicationService appService,
|
||||
IApplicationTypeService appTypeService,
|
||||
IApplicationInHostService appInHostService,
|
||||
IRawDataEKService rawDataEKService,
|
||||
ISettingService settingService,
|
||||
IAIHITService aihitService
|
||||
)
|
||||
{
|
||||
this.hostService = hostService;
|
||||
this.mapper = mapper;
|
||||
this.appService = appService;
|
||||
this.appTypeService = appTypeService;
|
||||
this.appInHostService = appInHostService;
|
||||
this.rawDataEKService = rawDataEKService;
|
||||
this.settingService = settingService;
|
||||
this.aihitService = aihitService;
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
private async Task GetAppTypesAsync()
|
||||
{
|
||||
AppTypes = await appTypeService.Get().ToListAsync();
|
||||
}
|
||||
|
||||
|
||||
public async Task InvokeFromDatabase()
|
||||
{
|
||||
await GetAppTypesAsync();
|
||||
|
||||
//Получаем зоны ответственности из БД
|
||||
var respAreas = await settingService.Get()
|
||||
.Where(ra => ra.Group == AIHTITSettings.RespAreaGroupName)
|
||||
.ToListAsync();
|
||||
#if !DEBUG
|
||||
//Запускаем хранимую процедуру в АИХ ИТ и складываем в таблицу RawDataEKs, предварительно почистив старые данные
|
||||
foreach (var respArea in respAreas)
|
||||
{
|
||||
logger.LogDebug($"-= Получение данных об ЭК зоны ответственности {respArea.Name} =-");
|
||||
var eksFromAIHIT = aihitService.GetEKList(respArea.Value)?.ToList();
|
||||
|
||||
if (eksFromAIHIT == null)
|
||||
continue;
|
||||
|
||||
//Удаляем текущие данные по зоне ответственности respArea
|
||||
logger.LogDebug($"-= Удаление существующих данных об ЭК зоны ответственности {respArea.Name} =-");
|
||||
var toDelete = rawDataEKService.Get().Where(rd => rd.ResponseArea == respArea.Value).ToList();
|
||||
toDelete.ForEach(d => rawDataEKService.Delete(d));
|
||||
|
||||
if(!await rawDataEKService.CommitAsync())
|
||||
{
|
||||
logger.LogError($"Не удалось создать удалить записи в rawDataEK зоны ответственности {respArea.Name}");
|
||||
continue;
|
||||
}
|
||||
|
||||
logger.LogDebug($"-= Создание новых записей об ЭК зоны ответственности {respArea.Name} =-");
|
||||
foreach (var ek in eksFromAIHIT)
|
||||
{
|
||||
// создаем
|
||||
var mappedEK = mapper.Map<RawDataEK>(ek);
|
||||
|
||||
mappedEK.Id = Guid.NewGuid();
|
||||
mappedEK.DateCreated = DateTimeOffset.UtcNow;
|
||||
|
||||
//if (!await rawDataEKService.CreateAsync(mappedEK) || !await rawDataEKService.CommitAsync())
|
||||
if (!await rawDataEKService.CreateAsync(mappedEK))
|
||||
{
|
||||
logger.LogError($"Не удалось создать запись rawDataEK {mappedEK.ShortName}({mappedEK.IP})");
|
||||
continue;
|
||||
}
|
||||
else
|
||||
logger.LogInformation($"Создана запись rawDataEK {mappedEK.ShortName}({mappedEK.IP}), зона ответственности {respArea.Name}");
|
||||
}
|
||||
|
||||
logger.LogDebug($"-= Запись в базу данных записей об ЭК зоны ответственности {respArea.Name} ");
|
||||
if (!await rawDataEKService.CommitAsync())
|
||||
logger.LogError($"Информация о хостах зоны ответственности {respArea.Name} не записана ");
|
||||
|
||||
logger.LogDebug($"-= Конец синхронизации данных об ЭК зоны ответственности {respArea.Name} =-");
|
||||
}
|
||||
#endif
|
||||
//Разбираем сырые данные
|
||||
|
||||
//Получаем интересующие статусы ЭК
|
||||
var statusList = await settingService.Get()
|
||||
.Where(s => s.Group == AIHTITSettings.StatusGroupName)
|
||||
.Select(s => s.Value.Trim())
|
||||
.ToListAsync();
|
||||
|
||||
if (statusList == null || statusList.Count == 0)
|
||||
return;
|
||||
|
||||
//Берём только активные ЭК
|
||||
var eks = await rawDataEKService.Get()
|
||||
.Where(e => e.IsActive == "t" && (e.Status != null && statusList.Contains(e.Status.Trim())) && e.EKFindCode.StartsWith("ВРТ-"))
|
||||
.ToListAsync();
|
||||
|
||||
foreach (var ek in eks)
|
||||
{
|
||||
if (ek.IP == null)
|
||||
continue;
|
||||
|
||||
var host = await hostService.GetHostWithAppsAsync(ek.IP);
|
||||
var mappedHost = mapper.Map<Host>(ek);
|
||||
//TODO Валидация по внешним связям
|
||||
|
||||
var hostApplications = await GetAndFillApplicationsAsync(ek);
|
||||
|
||||
if (host == null)
|
||||
{
|
||||
// создаем
|
||||
if (!await hostService.CreateAsync(mappedHost) || !await hostService.CommitAsync())
|
||||
{
|
||||
logger.LogError($"Не удалось создать узел {mappedHost.IP}");
|
||||
continue;
|
||||
}
|
||||
else
|
||||
logger.LogInformation($"----- Создан Host: {mappedHost.Id} -----");
|
||||
|
||||
host = await hostService.GetHostWithAppsAsync(mappedHost.IP);
|
||||
// Синхронизация Applications
|
||||
await SyncApplicationAndHostAsync(host, hostApplications);
|
||||
}
|
||||
else
|
||||
{
|
||||
// обновляем
|
||||
var isChanged = false;
|
||||
if (!host.EkStatusCode!.Equals(mappedHost.EkStatusCode))
|
||||
{
|
||||
host.EkStatusCode = mappedHost.EkStatusCode;
|
||||
isChanged = true;
|
||||
}
|
||||
else if (mappedHost.WorkGroup != null && (host.WorkGroup == null || !host.WorkGroup!.Equals(mappedHost.WorkGroup)))
|
||||
{
|
||||
host.WorkGroup = mappedHost.WorkGroup;
|
||||
isChanged = true;
|
||||
}
|
||||
|
||||
if (isChanged)
|
||||
{
|
||||
host.DateModified = DateTimeOffset.UtcNow;
|
||||
if (!await hostService.CommitAsync())
|
||||
logger.LogError($"Не удалось обновить узел {mappedHost.IP}");
|
||||
else
|
||||
logger.LogInformation($"Обновлён Host: {mappedHost.Id}");
|
||||
}
|
||||
|
||||
// Синхронизация Applications
|
||||
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)
|
||||
{
|
||||
var isUpdated = false;
|
||||
if (host == null)
|
||||
return;
|
||||
|
||||
logger.LogDebug($"Host: {host.Ek}({host.IP}), начало синхронизации приложений ({hostApplications.Count()}) ");
|
||||
|
||||
foreach (var changedHostApp in hostApplications)
|
||||
{
|
||||
var exist = host.ApplicationsInHosts.FirstOrDefault(a => a.ApplicationId == changedHostApp.Id);
|
||||
|
||||
if (exist == null)
|
||||
{
|
||||
//add
|
||||
logger.LogInformation($"Host: {host.Ek}({host.IP}), добавление нового приложения Application {changedHostApp.Name}");
|
||||
|
||||
var newAppHost = new ApplicationInHost { Id = Guid.NewGuid(), ApplicationId = changedHostApp.Id, HostId = host.Id };
|
||||
if (!await appInHostService.CreateAsync(newAppHost))
|
||||
logger.LogError($"Не удалось создать ApplicationInHost {changedHostApp.Name}, host: {host.Ek}({host.IP})");
|
||||
|
||||
isUpdated = true;
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var app in host.ApplicationsInHosts)
|
||||
{
|
||||
var appToRemove = hostApplications.FirstOrDefault(a => a.Id == app.ApplicationId);
|
||||
|
||||
if (appToRemove == null)
|
||||
{
|
||||
//todo remove appToRemove
|
||||
var obj = await appInHostService.Get().FirstOrDefaultAsync(t => t.ApplicationId == app.ApplicationId && t.HostId == host.Id);
|
||||
if (obj != null)
|
||||
{
|
||||
logger.LogInformation($"Host: {host.Ek}({host.IP}), удаление неактуального приложения Application {app.Application?.Name}");
|
||||
appInHostService.Delete(obj);
|
||||
|
||||
if (!await hostService.CommitAsync())
|
||||
logger.LogError($"Не удалось удалить Application {app.Application?.Name} узла {host.Ek}({host.IP})");
|
||||
|
||||
isUpdated = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isUpdated && isUpdateDateModified)
|
||||
host.DateModified = DateTimeOffset.UtcNow;
|
||||
|
||||
if (!await appInHostService.CommitAsync())
|
||||
logger.LogError($"Не удалось обновить ApplicationInHost для Host: {host.Ek}({host.IP})");
|
||||
|
||||
logger.LogDebug($"Host: {host.Ek}({host.IP} конец синхронизации приложений");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private async Task<List<Application>> GetAndFillApplicationsAsync(RawDataEK vm)
|
||||
{
|
||||
//logger.LogDebug($"Начало парсинга данных о программном обеспечении(СП, БД, ОС) из АИХ ИТ");
|
||||
var applications = new List<Application>();
|
||||
|
||||
if (vm.APPType != null)
|
||||
{
|
||||
var appList = vm.APPType.Split(new char[] { ',', ';' }).Distinct().ToList();
|
||||
foreach (var app in appList)
|
||||
{
|
||||
var created = await CreateAppIfNotExistAsync(app, ApplicationTypesEnum.APP);
|
||||
if (created != null)
|
||||
applications.Add(created);
|
||||
}
|
||||
}
|
||||
if (vm.DBType != null)
|
||||
{
|
||||
var appList = vm.DBType.Split(new char[] { ',', ';' }).Distinct().ToList();
|
||||
foreach (var app in appList)
|
||||
{
|
||||
var created = await CreateAppIfNotExistAsync(app, ApplicationTypesEnum.DB);
|
||||
if (created != null)
|
||||
applications.Add(created);
|
||||
}
|
||||
}
|
||||
if (vm.OSType != null)
|
||||
{
|
||||
var appList = vm.OSType.Split(new char[] { ',', ';' }).Distinct().ToList();
|
||||
foreach (var app in appList)
|
||||
{
|
||||
var created = await CreateAppIfNotExistAsync(app, ApplicationTypesEnum.OS);
|
||||
if (created != null)
|
||||
applications.Add(created);
|
||||
}
|
||||
}
|
||||
|
||||
//logger.LogDebug($"Конец парсинга данных о программном обеспечении(СП, БД, ОС) из АИХ ИТ");
|
||||
|
||||
return applications;
|
||||
}
|
||||
|
||||
|
||||
private List<string> GetAppFromXML(string? appField)
|
||||
{
|
||||
if (string.IsNullOrEmpty(appField))
|
||||
return new List<string>();
|
||||
|
||||
var appList = appField.Split(";").Distinct().ToList();
|
||||
//appList.ForEach(item => item.Trim());
|
||||
|
||||
return appList;
|
||||
}
|
||||
|
||||
|
||||
private List<string> GetDBFromXML(string? dbField)
|
||||
{
|
||||
if (string.IsNullOrEmpty(dbField))
|
||||
return new List<string>();
|
||||
|
||||
var dbList = dbField.Split(";").Distinct().ToList();
|
||||
|
||||
return dbList;
|
||||
}
|
||||
|
||||
|
||||
private List<string> GetOSFromXML(string? osField)
|
||||
{
|
||||
if (string.IsNullOrEmpty(osField))
|
||||
return new List<string>();
|
||||
|
||||
var osList = osField.Split(";").Distinct().ToList();
|
||||
|
||||
return osList;
|
||||
}
|
||||
|
||||
|
||||
private async Task<Application?> CreateAppIfNotExistAsync(string appName, ApplicationTypesEnum type)
|
||||
{
|
||||
if (string.IsNullOrEmpty(appName) || string.IsNullOrWhiteSpace(appName)) return null;
|
||||
|
||||
var existApp = await appService.GetByNameAsync(appName);
|
||||
if (existApp != null)
|
||||
return existApp;
|
||||
|
||||
//Создаем
|
||||
var appType = GetAppTypeByName(type);
|
||||
if (appType == null)
|
||||
{
|
||||
logger.LogError($"Не удалось создать запись в таблице Applications: {appName}, так как не получил AppType: {type.ToString()}");
|
||||
return null;
|
||||
}
|
||||
|
||||
var app = new Application
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
Name = appName.Trim(),
|
||||
ApplicationTypeId = appType.Id
|
||||
};
|
||||
|
||||
if (!await appService.CreateAsync(app) || !await appService.CommitAsync())
|
||||
logger.LogError($"Не удалось создать запись в таблице Application: {appName}, {app.ToJson()}");
|
||||
else
|
||||
logger.LogInformation($"Создана запись а таблице Application: {appName}, {app.ToJson()}");
|
||||
|
||||
return await appService.GetAsync(app.Id);
|
||||
}
|
||||
|
||||
|
||||
private ApplicationType? GetAppTypeByName(ApplicationTypesEnum type)
|
||||
{
|
||||
var existType = AppTypes.FirstOrDefault(t => t.Name == type.ToString());
|
||||
if (existType == null)
|
||||
logger.LogError($"Не найден AppType: {type}");
|
||||
|
||||
return existType;
|
||||
}
|
||||
|
||||
|
||||
private static string EncodeString(string str)
|
||||
{
|
||||
byte[] bStr = Encoding.GetEncoding("koi8r").GetBytes(str);
|
||||
Encoding encoding = Encoding.GetEncoding("koi8r");
|
||||
str = encoding.GetString(bStr, 0, bStr.Length);
|
||||
return str;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using PARR.AIHIT.Context;
|
||||
using PARR.AIHIT.Services;
|
||||
using PARR.AIHIT.Settings;
|
||||
using PARR.BLL;
|
||||
using PARR.DAL;
|
||||
using PARR.Mail;
|
||||
|
||||
namespace PARR.AIHIT
|
||||
{
|
||||
public static class SyncherInstaller
|
||||
{
|
||||
public static void InstallSyncerServices(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
var syncherSettings = new SyncherSettings();
|
||||
configuration.GetSection(nameof(SyncherSettings)).Bind(syncherSettings);
|
||||
services.AddSingleton(syncherSettings);
|
||||
|
||||
services.InstallMailServices(configuration);
|
||||
services.InstallDalServices(configuration);
|
||||
services.InstallBllServices(configuration);
|
||||
|
||||
services.AddDbContext<AIHITContext>(options =>
|
||||
options.UseSqlServer(
|
||||
configuration.GetConnectionString("AihitConnection")
|
||||
, sqlServerOptions => sqlServerOptions.CommandTimeout(1800)
|
||||
));
|
||||
|
||||
services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
|
||||
|
||||
services.AddTransient<ISyncher, Syncher>();
|
||||
services.AddTransient<IAIHITService, AIHITService>();
|
||||
|
||||
|
||||
|
||||
|
||||
//services.AddDbContext <AIHITContext> (options =>
|
||||
//{
|
||||
// options.UseSqlServer("server=(10.248.19.97);uid=awhit-ipp-parr;pwd=ET3h$9y1LH#D");
|
||||
//});
|
||||
}
|
||||
}
|
||||
}
|
||||
28
PARR.API.sln
28
PARR.API.sln
@@ -9,10 +9,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.DAL", "PARR.DAL\PARR.D
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.Mail", "PARR.Mail\PARR.Mail\PARR.Mail.csproj", "{228C8124-69E4-4AE0-8C33-0438E54FF1BA}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.AIHITWorker", "PARR.Worker\PARR.Worker\PARR.AIHITWorker.csproj", "{D15F308C-9F63-4D69-B06E-DDA26FEE9BAB}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.AIHIT", "PARR.AIHIT\AIHIT\PARR.AIHIT.csproj", "{3ED4E1CE-2AF5-4EB3-B7DF-B77CCC242B9E}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C170A32C-5A9D-4F1C-B6FF-FAE12736ED17}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
.gitignore = .gitignore
|
||||
@@ -60,16 +56,17 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.EsppScheduleSync", "PA
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.EsppScheduleSyncWorker", "PARR.EsppScheduleSyncWorker\PARR.EsppScheduleSyncWorker.csproj", "{C597A1D7-1BC5-493B-BC29-03EC830FB090}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.AIHITLoader", "PARR.AIHITLoader\PARR.AIHITLoader.csproj", "{E7F3C8FB-445B-4711-8F89-0B7DA7DB4537}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.AIHITLoader", "PARR.AIHITLoader\PARR.AIHITLoader.csproj", "{E7F3C8FB-445B-4711-8F89-0B7DA7DB4537}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.AIHITLoaderWorker", "PARR.AIHITLoaderWorker\PARR.AIHITLoaderWorker.csproj", "{E9434123-E697-42E2-B7C0-FE08766B98D1}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.AIHITLoaderWorker", "PARR.AIHITLoaderWorker\PARR.AIHITLoaderWorker.csproj", "{E9434123-E697-42E2-B7C0-FE08766B98D1}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.AIHITSyncer", "PARR.AIHITSyncer\PARR.AIHITSyncer.csproj", "{4177B13B-585C-44C7-B3C1-6B6E46D6BABC}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.AIHITSyncer", "PARR.AIHITSyncer\PARR.AIHITSyncer.csproj", "{4177B13B-585C-44C7-B3C1-6B6E46D6BABC}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.AIHITSyncerWorker", "PARR.AIHITSyncerWorker\PARR.AIHITSyncerWorker.csproj", "{4FA79176-F833-4879-8437-37EA053BAA94}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.NextRun", "PARR.NextRun\PARR.NextRun.csproj", "{92400205-B781-4C6C-BDA3-6D3652C2B62F}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.AIHITSyncerWorker", "PARR.AIHITSyncerWorker\PARR.AIHITSyncerWorker.csproj", "{4FA79176-F833-4879-8437-37EA053BAA94}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PARR.NextRunWorker", "PARR.NextRunWorker\PARR.NextRunWorker.csproj", "{47C6E193-257A-4001-84D7-11B640E3D1A0}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.NextRun", "PARR.NextRun\PARR.NextRun.csproj", "{92400205-B781-4C6C-BDA3-6D3652C2B62F}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PARR.NextRunWorker", "PARR.NextRunWorker\PARR.NextRunWorker.csproj", "{47C6E193-257A-4001-84D7-11B640E3D1A0}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@@ -89,14 +86,6 @@ Global
|
||||
{228C8124-69E4-4AE0-8C33-0438E54FF1BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{228C8124-69E4-4AE0-8C33-0438E54FF1BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{228C8124-69E4-4AE0-8C33-0438E54FF1BA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D15F308C-9F63-4D69-B06E-DDA26FEE9BAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D15F308C-9F63-4D69-B06E-DDA26FEE9BAB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D15F308C-9F63-4D69-B06E-DDA26FEE9BAB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D15F308C-9F63-4D69-B06E-DDA26FEE9BAB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{3ED4E1CE-2AF5-4EB3-B7DF-B77CCC242B9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{3ED4E1CE-2AF5-4EB3-B7DF-B77CCC242B9E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{3ED4E1CE-2AF5-4EB3-B7DF-B77CCC242B9E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{3ED4E1CE-2AF5-4EB3-B7DF-B77CCC242B9E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{AB278172-BFB4-4D54-9022-2D2A5B3338D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{AB278172-BFB4-4D54-9022-2D2A5B3338D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{7BAB9170-743D-4542-8881-9B161EE81BB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
@@ -171,7 +160,6 @@ Global
|
||||
{C597A1D7-1BC5-493B-BC29-03EC830FB090}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C597A1D7-1BC5-493B-BC29-03EC830FB090}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C597A1D7-1BC5-493B-BC29-03EC830FB090}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
<<<<<<< HEAD
|
||||
{E7F3C8FB-445B-4711-8F89-0B7DA7DB4537}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E7F3C8FB-445B-4711-8F89-0B7DA7DB4537}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E7F3C8FB-445B-4711-8F89-0B7DA7DB4537}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
@@ -188,7 +176,6 @@ Global
|
||||
{4FA79176-F833-4879-8437-37EA053BAA94}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4FA79176-F833-4879-8437-37EA053BAA94}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4FA79176-F833-4879-8437-37EA053BAA94}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
=======
|
||||
{92400205-B781-4C6C-BDA3-6D3652C2B62F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{92400205-B781-4C6C-BDA3-6D3652C2B62F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{92400205-B781-4C6C-BDA3-6D3652C2B62F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
@@ -197,7 +184,6 @@ Global
|
||||
{47C6E193-257A-4001-84D7-11B640E3D1A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{47C6E193-257A-4001-84D7-11B640E3D1A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{47C6E193-257A-4001-84D7-11B640E3D1A0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
>>>>>>> next-run
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
using PARR.Constants;
|
||||
using PARR.DAL.Contracts;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.Models.AIHIT;
|
||||
|
||||
namespace PARR.DAL.Context
|
||||
{
|
||||
@@ -17,8 +16,6 @@ namespace PARR.DAL.Context
|
||||
public DbSet<ApplicationType> ApplicationTypes { get; set; }
|
||||
public DbSet<ApplicationInHost> ApplicationsInHosts { get; set; }
|
||||
|
||||
public DbSet<Models.AIHIT.Setting> Settings { get; set; }
|
||||
public DbSet<RawDataEK> RawDataEKs { get; set; }
|
||||
public DbSet<Template> Templates { get; set; }
|
||||
public DbSet<Models.TaskStatus> TaskStatuses { get; set; }
|
||||
public DbSet<RobotStatus> RobotStatuses { get; set; }
|
||||
@@ -72,33 +69,6 @@ namespace PARR.DAL.Context
|
||||
});
|
||||
#endregion
|
||||
|
||||
#region AIHIT_Setting
|
||||
modelBuilder.Entity<Models.AIHIT.Setting>(f =>
|
||||
{
|
||||
f.HasData(
|
||||
//new() { Id = new Guid("1AD12210-BE62-459A-AA6C-FDA7648503F7"), DateCreated = dateCreated, DateModified = null, Group = null, Name = "ConnectionString", Value = @"Data Source=10.248.19.97; Initial Catalog=mao2;User ID=awhit-ipp-parr;pwd=ET3h$9y1LH#D;TrustServerCertificate=true;", Description = "Строка подключения к базе данных АИХ ИТ" },
|
||||
new() { Id = new Guid("B16AFD06-605B-499F-9E35-A19586DE96B0"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "ГВЦ", Value = "00-ГВЦ", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("42A2EC03-DA3A-45FC-971E-399910FDC5AE"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "ОКТ", Value = "01-ОКТ", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("17EFAF65-AE8C-45F1-B187-E6CB1BD6385B"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "КЛГ", Value = "10-КЛГ", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("51270997-20F6-4A61-85AC-64F6B6DD5DC4"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "МСК", Value = "17-МСК", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("B94F8C38-E78A-494E-81BA-39E4E902FFCC"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "ГОР", Value = "24-ГОР", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("52BA20EA-4E7A-4500-939B-E2CFF563809A"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "СЕВ", Value = "28-СЕВ", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("CB9DA805-29E9-4E08-B1ED-D4B374920F77"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "СКВ", Value = "51-СКВ", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("1943A65C-2060-4B5F-AF1F-ACEC74835481"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "ЮВСТ", Value = "58-ЮВСТ", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("4D9EF2EE-D4FA-4D28-A93B-6F1FD0A639F9"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "ПРИВ", Value = "61-ПРИВ", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("F1A54C25-A93A-4FE3-8268-AFBCC435B6E9"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "КБШ", Value = "63-КБШ", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("CC839C48-62BB-46A8-924C-85B5E7A3E245"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "СВРД", Value = "76-СВРД", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("C98FB684-FF03-441E-A9C3-AC5071D69857"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "ЮУР", Value = "80-ЮУР", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("F2684A90-6029-4476-BD3D-E713A8A228D6"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "ЗСИБ", Value = "83-ЗСИБ", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("B3C73162-21EA-42F0-B0E1-3C5076176F8A"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "КРАСН", Value = "88-КРАСН", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("a8cff6fd-28b7-49f2-a412-9208c10f6516"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "ВСИБ", Value = "92-ВСИБ", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("50F66704-4D26-4587-BB1E-DCA70C8F4B89"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "ЗАБ", Value = "94-ЗАБ", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("1FD43634-4A06-4237-9727-EDFA6F3EEBE8"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.RespAreaGroupName, Name = "ДВС", Value = "96-ДВС", Description = "Зона ответственности" },
|
||||
new() { Id = new Guid("77C73C0A-8E4D-4676-B6E2-6A112F20E346"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.StatusGroupName, Name = "Exploitation", Value = "3-В эксплуатации", Description = "Статус актуальных ЭК" }
|
||||
);
|
||||
});
|
||||
#endregion
|
||||
|
||||
#region TaskStatus
|
||||
modelBuilder.Entity<Models.TaskStatus>(f =>
|
||||
{
|
||||
|
||||
2527
PARR.DAL/Migrations/20240205064510_removeTblAihit.Designer.cs
generated
Normal file
2527
PARR.DAL/Migrations/20240205064510_removeTblAihit.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
135
PARR.DAL/Migrations/20240205064510_removeTblAihit.cs
Normal file
135
PARR.DAL/Migrations/20240205064510_removeTblAihit.cs
Normal file
@@ -0,0 +1,135 @@
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
|
||||
|
||||
namespace PARR.DAL.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class removeTblAihit : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "RawDataEKs",
|
||||
schema: "AIHIT");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Settings",
|
||||
schema: "AIHIT");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.EnsureSchema(
|
||||
name: "AIHIT");
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "RawDataEKs",
|
||||
schema: "AIHIT",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
||||
AIHID = table.Column<int>(type: "integer", nullable: true),
|
||||
APPType = table.Column<string>(type: "text", nullable: true),
|
||||
AdditionalInfo = table.Column<string>(type: "text", nullable: true),
|
||||
CKBSServerType = table.Column<string>(type: "text", nullable: true),
|
||||
CTSDirection = table.Column<string>(type: "text", nullable: true),
|
||||
ClientOS = table.Column<string>(type: "text", nullable: true),
|
||||
ClientSoftware = table.Column<string>(type: "text", nullable: true),
|
||||
Company = table.Column<string>(type: "text", nullable: true),
|
||||
CreateTime = table.Column<string>(type: "text", nullable: true),
|
||||
DBType = table.Column<string>(type: "text", nullable: true),
|
||||
DateCreated = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false),
|
||||
DateModified = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
||||
EKCategory = table.Column<string>(type: "text", nullable: true),
|
||||
EKFindCode = table.Column<string>(type: "text", nullable: true),
|
||||
EKRegister = table.Column<string>(type: "text", nullable: true),
|
||||
EKRevizor = table.Column<string>(type: "text", nullable: true),
|
||||
EKSubCategory = table.Column<string>(type: "text", nullable: true),
|
||||
EKType = table.Column<string>(type: "text", nullable: true),
|
||||
EndExplotationDate = table.Column<string>(type: "text", nullable: true),
|
||||
FullName = table.Column<string>(type: "text", nullable: true),
|
||||
IBServerType = table.Column<string>(type: "text", nullable: true),
|
||||
IP = table.Column<string>(type: "text", nullable: true),
|
||||
InfrastructureServerType = table.Column<string>(type: "text", nullable: true),
|
||||
IsActive = table.Column<string>(type: "text", nullable: true),
|
||||
IsImportant = table.Column<string>(type: "text", nullable: true),
|
||||
IsUnreliableData = table.Column<char>(type: "character(1)", nullable: true),
|
||||
Location = table.Column<string>(type: "text", nullable: true),
|
||||
Metka = table.Column<string>(type: "text", nullable: true),
|
||||
MonitoringServerType = table.Column<string>(type: "text", nullable: true),
|
||||
NetworkName = table.Column<string>(type: "text", nullable: true),
|
||||
NewEKFindCode = table.Column<string>(type: "text", nullable: true),
|
||||
OSType = table.Column<string>(type: "text", nullable: true),
|
||||
OldEKFindCode = table.Column<string>(type: "text", nullable: true),
|
||||
PlannedTimeToRepair = table.Column<string>(type: "text", nullable: true),
|
||||
Prescription = table.Column<string>(type: "text", nullable: true),
|
||||
ProductCode = table.Column<string>(type: "text", nullable: true),
|
||||
ResponseArea = table.Column<string>(type: "text", nullable: true),
|
||||
ResponsibleByEK = table.Column<string>(type: "text", nullable: true),
|
||||
ServiceCode = table.Column<string>(type: "text", nullable: true),
|
||||
ShiftWorkGroup = table.Column<string>(type: "text", nullable: true),
|
||||
ShortName = table.Column<string>(type: "text", nullable: true),
|
||||
StartExplotationDate = table.Column<string>(type: "text", nullable: true),
|
||||
Status = table.Column<string>(type: "text", nullable: true),
|
||||
SysModTime = table.Column<string>(type: "text", nullable: true),
|
||||
SysModUser = table.Column<string>(type: "text", nullable: true),
|
||||
TargetRepairTime = table.Column<string>(type: "text", nullable: true),
|
||||
WorkGroup = table.Column<string>(type: "text", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_RawDataEKs", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Settings",
|
||||
schema: "AIHIT",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
||||
DateCreated = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false),
|
||||
DateModified = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
||||
Description = table.Column<string>(type: "text", nullable: true),
|
||||
Group = table.Column<string>(type: "text", nullable: true),
|
||||
Name = table.Column<string>(type: "text", nullable: false),
|
||||
Value = table.Column<string>(type: "text", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Settings", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.InsertData(
|
||||
schema: "AIHIT",
|
||||
table: "Settings",
|
||||
columns: new[] { "Id", "DateCreated", "DateModified", "Description", "Group", "Name", "Value" },
|
||||
values: new object[,]
|
||||
{
|
||||
{ new Guid("17efaf65-ae8c-45f1-b187-e6cb1bd6385b"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "КЛГ", "10-КЛГ" },
|
||||
{ new Guid("1943a65c-2060-4b5f-af1f-acec74835481"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "ЮВСТ", "58-ЮВСТ" },
|
||||
{ new Guid("1fd43634-4a06-4237-9727-edfa6f3eebe8"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "ДВС", "96-ДВС" },
|
||||
{ new Guid("42a2ec03-da3a-45fc-971e-399910fdc5ae"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "ОКТ", "01-ОКТ" },
|
||||
{ new Guid("4d9ef2ee-d4fa-4d28-a93b-6f1fd0a639f9"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "ПРИВ", "61-ПРИВ" },
|
||||
{ new Guid("50f66704-4d26-4587-bb1e-dca70c8f4b89"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "ЗАБ", "94-ЗАБ" },
|
||||
{ new Guid("51270997-20f6-4a61-85ac-64f6b6dd5dc4"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "МСК", "17-МСК" },
|
||||
{ new Guid("52ba20ea-4e7a-4500-939b-e2cff563809a"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "СЕВ", "28-СЕВ" },
|
||||
{ new Guid("77c73c0a-8e4d-4676-b6e2-6a112f20e346"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Статус актуальных ЭК", "Status", "Exploitation", "3-В эксплуатации" },
|
||||
{ new Guid("a8cff6fd-28b7-49f2-a412-9208c10f6516"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "ВСИБ", "92-ВСИБ" },
|
||||
{ new Guid("b16afd06-605b-499f-9e35-a19586de96b0"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "ГВЦ", "00-ГВЦ" },
|
||||
{ new Guid("b3c73162-21ea-42f0-b0e1-3c5076176f8a"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "КРАСН", "88-КРАСН" },
|
||||
{ new Guid("b94f8c38-e78a-494e-81ba-39e4e902ffcc"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "ГОР", "24-ГОР" },
|
||||
{ new Guid("c98fb684-ff03-441e-a9c3-ac5071d69857"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "ЮУР", "80-ЮУР" },
|
||||
{ new Guid("cb9da805-29e9-4e08-b1ed-d4b374920f77"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "СКВ", "51-СКВ" },
|
||||
{ new Guid("cc839c48-62bb-46a8-924c-85b5e7a3e245"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "СВРД", "76-СВРД" },
|
||||
{ new Guid("f1a54c25-a93a-4fe3-8268-afbcc435b6e9"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "КБШ", "63-КБШ" },
|
||||
{ new Guid("f2684a90-6029-4476-bd3d-e713a8a228d6"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Зона ответственности", "ResponsibleArea", "ЗСИБ", "83-ЗСИБ" }
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -22,353 +22,6 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.AIHIT.RawDataEK", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("uuid");
|
||||
|
||||
b.Property<int?>("AIHID")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("APPType")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("AdditionalInfo")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("CKBSServerType")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("CTSDirection")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ClientOS")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ClientSoftware")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Company")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("CreateTime")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("DBType")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTimeOffset>("DateCreated")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<DateTimeOffset?>("DateModified")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("EKCategory")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("EKFindCode")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("EKRegister")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("EKRevizor")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("EKSubCategory")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("EKType")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("EndExplotationDate")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("FullName")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("IBServerType")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("IP")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("InfrastructureServerType")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("IsActive")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("IsImportant")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<char?>("IsUnreliableData")
|
||||
.HasColumnType("character(1)");
|
||||
|
||||
b.Property<string>("Location")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Metka")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("MonitoringServerType")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("NetworkName")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("NewEKFindCode")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("OSType")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("OldEKFindCode")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("PlannedTimeToRepair")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Prescription")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ProductCode")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ResponseArea")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ResponsibleByEK")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ServiceCode")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ShiftWorkGroup")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ShortName")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("StartExplotationDate")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Status")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("SysModTime")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("SysModUser")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("TargetRepairTime")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("WorkGroup")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("RawDataEKs", "AIHIT");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.AIHIT.Setting", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("uuid");
|
||||
|
||||
b.Property<DateTimeOffset>("DateCreated")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<DateTimeOffset?>("DateModified")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Group")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Value")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Settings", "AIHIT");
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
{
|
||||
Id = new Guid("b16afd06-605b-499f-9e35-a19586de96b0"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "ГВЦ",
|
||||
Value = "00-ГВЦ"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("42a2ec03-da3a-45fc-971e-399910fdc5ae"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "ОКТ",
|
||||
Value = "01-ОКТ"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("17efaf65-ae8c-45f1-b187-e6cb1bd6385b"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "КЛГ",
|
||||
Value = "10-КЛГ"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("51270997-20f6-4a61-85ac-64f6b6dd5dc4"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "МСК",
|
||||
Value = "17-МСК"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("b94f8c38-e78a-494e-81ba-39e4e902ffcc"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "ГОР",
|
||||
Value = "24-ГОР"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("52ba20ea-4e7a-4500-939b-e2cff563809a"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "СЕВ",
|
||||
Value = "28-СЕВ"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("cb9da805-29e9-4e08-b1ed-d4b374920f77"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "СКВ",
|
||||
Value = "51-СКВ"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("1943a65c-2060-4b5f-af1f-acec74835481"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "ЮВСТ",
|
||||
Value = "58-ЮВСТ"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("4d9ef2ee-d4fa-4d28-a93b-6f1fd0a639f9"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "ПРИВ",
|
||||
Value = "61-ПРИВ"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("f1a54c25-a93a-4fe3-8268-afbcc435b6e9"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "КБШ",
|
||||
Value = "63-КБШ"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("cc839c48-62bb-46a8-924c-85b5e7a3e245"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "СВРД",
|
||||
Value = "76-СВРД"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("c98fb684-ff03-441e-a9c3-ac5071d69857"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "ЮУР",
|
||||
Value = "80-ЮУР"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("f2684a90-6029-4476-bd3d-e713a8a228d6"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "ЗСИБ",
|
||||
Value = "83-ЗСИБ"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("b3c73162-21ea-42f0-b0e1-3c5076176f8a"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "КРАСН",
|
||||
Value = "88-КРАСН"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("a8cff6fd-28b7-49f2-a412-9208c10f6516"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "ВСИБ",
|
||||
Value = "92-ВСИБ"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("50f66704-4d26-4587-bb1e-dca70c8f4b89"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "ЗАБ",
|
||||
Value = "94-ЗАБ"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("1fd43634-4a06-4237-9727-edfa6f3eebe8"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Зона ответственности",
|
||||
Group = "ResponsibleArea",
|
||||
Name = "ДВС",
|
||||
Value = "96-ДВС"
|
||||
},
|
||||
new
|
||||
{
|
||||
Id = new Guid("77c73c0a-8e4d-4676-b6e2-6a112f20e346"),
|
||||
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||
Description = "Статус актуальных ЭК",
|
||||
Group = "Status",
|
||||
Name = "Exploitation",
|
||||
Value = "3-В эксплуатации"
|
||||
});
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.AgentHistory", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
using PARR.DAL.Models.Base;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace PARR.DAL.Models.AIHIT
|
||||
{
|
||||
[Table("RawDataEKs", Schema = "AIHIT")]
|
||||
public class RawDataEK:IBase
|
||||
{
|
||||
[Key]
|
||||
public Guid Id { get; set; }
|
||||
public DateTimeOffset DateCreated { get; set; }
|
||||
public DateTimeOffset? DateModified { get; set; }
|
||||
public string? IP { get; set; }
|
||||
public string? Metka { get; set; }
|
||||
public string? IsActive { get; set; }
|
||||
public string? IsImportant { get; set; }
|
||||
public string? CreateTime { get; set; }
|
||||
public string? AdditionalInfo { get; set; }
|
||||
public string? ResponseArea { get; set; }
|
||||
public string? EKCategory { get; set; }
|
||||
public string? EKFindCode { get; set; }
|
||||
public string? ProductCode { get; set; }
|
||||
public string? ServiceCode { get; set; }
|
||||
public string? ShortName { get; set; }
|
||||
public string? ResponsibleByEK { get; set; }
|
||||
public string? PlannedTimeToRepair { get; set; }
|
||||
public string? EKSubCategory { get; set; }
|
||||
public string? FullName { get; set; }
|
||||
public string? Prescription { get; set; }
|
||||
public string? Company { get; set; }
|
||||
public string? WorkGroup { get; set; }
|
||||
public string? Location { get; set; }
|
||||
public string? EKRevizor { get; set; }
|
||||
public string? EKRegister { get; set; }
|
||||
public string? NetworkName { get; set; }
|
||||
public string? Status { get; set; }
|
||||
public string? EKType { get; set; }
|
||||
public string? EndExplotationDate { get; set; }
|
||||
public string? StartExplotationDate { get; set; }
|
||||
public string? TargetRepairTime { get; set; }
|
||||
public string? SysModTime { get; set; }
|
||||
public string? SysModUser { get; set; }
|
||||
public string? NewEKFindCode { get; set; }
|
||||
public string? OldEKFindCode { get; set; }
|
||||
public string? CTSDirection { get; set; }
|
||||
public int? AIHID { get; set; }
|
||||
public char? IsUnreliableData { get; set; }
|
||||
public string? ShiftWorkGroup { get; set; }
|
||||
public string? ClientSoftware { get; set; }
|
||||
public string? ClientOS { get; set; }
|
||||
public string? DBType { get; set; }
|
||||
public string? APPType { get; set; }
|
||||
public string? CKBSServerType { get; set; }
|
||||
public string? IBServerType { get; set; }
|
||||
public string? InfrastructureServerType { get; set; }
|
||||
public string? MonitoringServerType { get; set; }
|
||||
public string? OSType { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
using PARR.DAL.Models.Base;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace PARR.DAL.Models.AIHIT
|
||||
{
|
||||
[Table("Settings", Schema = "AIHIT")]
|
||||
public class Setting : IBase
|
||||
{
|
||||
[Key]
|
||||
public Guid Id { get; set; }
|
||||
public DateTimeOffset DateCreated { get; set; }
|
||||
public DateTimeOffset? DateModified { get; set; }
|
||||
public string? Group { get; set; }
|
||||
public required string Name { get; set; }
|
||||
public required string Value { get; set; }
|
||||
public string? Description { get; set; }
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -7,9 +7,7 @@ using PARR.DAL.Context;
|
||||
using PARR.DAL.Contracts;
|
||||
using PARR.DAL.Services.Implementation;
|
||||
using PARR.DAL.Services.Implementations;
|
||||
using PARR.DAL.Services.Implementations.AIHIT;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
using PARR.DAL.Services.Interfaces.AIHIT;
|
||||
using PARR.DAL.Settings;
|
||||
using PARR.DAL.TransformServices;
|
||||
|
||||
@@ -49,8 +47,6 @@ namespace PARR.DAL
|
||||
services.AddTransient<IProcessService, ProcessService>();
|
||||
services.AddTransient<ISubprocessService, SubprocessService>();
|
||||
services.AddTransient<ITnkService, TnkService>();
|
||||
services.AddTransient<IRawDataEKService, RawDataEKService>();
|
||||
services.AddTransient<ISettingService, SettingService>();
|
||||
services.AddTransient<ITemplateService, TemplateService>();
|
||||
services.AddTransient<IStatusTemplateService, StatusTemplateService>();
|
||||
services.AddTransient<IRobotHistoryLevelService, RobotHistoryLevelService>();
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using PARR.DAL.Context;
|
||||
using PARR.DAL.Models.AIHIT;
|
||||
using PARR.DAL.Services.Abstracts;
|
||||
using PARR.DAL.Services.Interfaces.AIHIT;
|
||||
|
||||
namespace PARR.DAL.Services.Implementations.AIHIT
|
||||
{
|
||||
internal class RawDataEKService : BaseService<RawDataEK>, IRawDataEKService
|
||||
{
|
||||
private readonly DataContext dataContext;
|
||||
private readonly ILogger<RawDataEKService> logger;
|
||||
|
||||
public RawDataEKService(DataContext dataContext, ILogger<RawDataEKService> logger) : base(logger)
|
||||
{
|
||||
this.dataContext = dataContext;
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
|
||||
public void DeleteAll()
|
||||
{
|
||||
var startCount = EntitySet.Count();
|
||||
if (startCount > 0)
|
||||
{
|
||||
EntitiContext.RawDataEKs.RemoveRange(EntitySet);
|
||||
logger.LogInformation($"Из таблицы RawDataEK удалено {startCount} записей");
|
||||
EntitiContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected override DbSet<RawDataEK> EntitySet => dataContext.RawDataEKs;
|
||||
|
||||
protected override DataContext EntitiContext => dataContext;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using PARR.DAL.Context;
|
||||
using PARR.DAL.Models.AIHIT;
|
||||
using PARR.DAL.Services.Abstracts;
|
||||
using PARR.DAL.Services.Interfaces.AIHIT;
|
||||
|
||||
namespace PARR.DAL.Services.Implementations.AIHIT
|
||||
{
|
||||
internal class SettingService : BaseService<Setting>, ISettingService
|
||||
{
|
||||
private readonly DataContext dataContext;
|
||||
private readonly ILogger<SettingService> logger;
|
||||
public SettingService(DataContext dataContext, ILogger<SettingService> logger) : base(logger)
|
||||
{
|
||||
this.dataContext = dataContext;
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
protected override DbSet<Setting> EntitySet => dataContext.Settings;
|
||||
protected override DataContext EntitiContext => dataContext;
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
using PARR.DAL.Services.Interfaces.Base;
|
||||
|
||||
namespace PARR.DAL.Services.Interfaces.AIHIT
|
||||
{
|
||||
public interface IRawDataEKService : IBaseService<Models.AIHIT.RawDataEK>
|
||||
{
|
||||
void DeleteAll();
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
using PARR.DAL.Services.Interfaces.Base;
|
||||
|
||||
namespace PARR.DAL.Services.Interfaces.AIHIT
|
||||
{
|
||||
public interface ISettingService : IBaseService<Models.AIHIT.Setting>
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
|
||||
|
||||
FROM 10.99.253.167:8090/dotnet/runtime:7.0 AS base
|
||||
WORKDIR /app
|
||||
|
||||
FROM 10.99.253.167:8090/dotnet/sdk:7.0 AS build
|
||||
WORKDIR /src
|
||||
COPY ["NuGet.config", "."]
|
||||
COPY ["PARR.Worker/PARR.Worker/PARR.AIHITWorker.csproj", "PARR.Worker/PARR.Worker/"]
|
||||
COPY ["PARR.AIHIT/AIHIT/PARR.AIHIT.csproj", "PARR.AIHIT/AIHIT/"]
|
||||
COPY ["PARR.DAL/PARR.DAL.csproj", "PARR.DAL/"]
|
||||
COPY ["PARR.Mail/PARR.Mail/PARR.Mail.csproj", "PARR.Mail/PARR.Mail/"]
|
||||
RUN dotnet restore "PARR.Worker/PARR.Worker/PARR.AIHITWorker.csproj"
|
||||
COPY . .
|
||||
WORKDIR "/src/PARR.Worker/PARR.Worker"
|
||||
RUN dotnet build "PARR.AIHITWorker.csproj" -c Release -o /app/build
|
||||
|
||||
FROM build AS publish
|
||||
ARG app_version=0.0.0-default
|
||||
RUN dotnet publish "PARR.AIHITWorker.csproj" -c Release -o /app/publish /p:UseAppHost=false /p:Version=$app_version
|
||||
|
||||
FROM base AS final
|
||||
WORKDIR /app
|
||||
COPY --from=publish /app/publish .
|
||||
|
||||
# Fixes an old version TLS (AIH IT GVC)
|
||||
RUN sed -i 's/DEFAULT@SECLEVEL=2/DEFAULT@SECLEVEL=1/g' /etc/ssl/openssl.cnf
|
||||
|
||||
ENTRYPOINT ["dotnet", "PARR.AIHITWorker.dll"]
|
||||
|
||||
|
||||
### EXAMPLE ###
|
||||
# docker build -t parr-aihit-syncher:v1.0.0 --build-arg app_version=1.0.0 -f PARR.Worker/Dockerfile .
|
||||
@@ -1,26 +0,0 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Worker">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<UserSecretsId>dotnet-PARR.Worker-87bfa085-3c62-4b97-b25f-bdece8fc03df</UserSecretsId>
|
||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||
<DockerfileContext>..\..</DockerfileContext>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Elastic.CommonSchema.Serilog" Version="8.6.1" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.17.0" />
|
||||
<PackageReference Include="Serilog.Extensions.Hosting" Version="7.0.0" />
|
||||
<PackageReference Include="Serilog.Settings.Configuration" Version="7.0.0" />
|
||||
<PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" />
|
||||
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\PARR.AIHIT\AIHIT\PARR.AIHIT.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,33 +0,0 @@
|
||||
using Elastic.CommonSchema.Serilog;
|
||||
using PARR.AIHIT;
|
||||
using PARR.Worker;
|
||||
using PARR.Worker.Settings;
|
||||
using Serilog;
|
||||
using System.Text;
|
||||
|
||||
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
|
||||
|
||||
IHost host = Host.CreateDefaultBuilder(args)
|
||||
.ConfigureServices((hostContext, services) =>
|
||||
{
|
||||
var workerSettings = new WorkerSettings();
|
||||
hostContext.Configuration.GetSection(nameof(WorkerSettings)).Bind(workerSettings);
|
||||
services.AddSingleton(workerSettings);
|
||||
|
||||
//services.InstallMailServices(hostContext.Configuration);
|
||||
services.InstallSyncerServices(hostContext.Configuration);
|
||||
|
||||
services.AddHostedService<Worker>();
|
||||
})
|
||||
.UseSerilog((hostContext, services, config) =>
|
||||
{
|
||||
if (hostContext.HostingEnvironment.IsProduction())
|
||||
config.WriteTo.Console(new EcsTextFormatter());
|
||||
else
|
||||
config.WriteTo.Console();
|
||||
|
||||
config.ReadFrom.Configuration(hostContext.Configuration);
|
||||
})
|
||||
.Build();
|
||||
|
||||
host.Run();
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"profiles": {
|
||||
"PARR.Worker": {
|
||||
"commandName": "Project",
|
||||
"environmentVariables": {
|
||||
"DOTNET_ENVIRONMENT": "Development"
|
||||
},
|
||||
"dotnetRunMessages": true
|
||||
},
|
||||
"Docker": {
|
||||
"commandName": "Docker"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
namespace PARR.Worker.Settings
|
||||
{
|
||||
public class WorkerSettings
|
||||
{
|
||||
public TimeSpan OccursEvery { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
using PARR.AIHIT;
|
||||
using PARR.BLL.Services.Interfaces;
|
||||
using PARR.Worker.Settings;
|
||||
|
||||
namespace PARR.Worker
|
||||
{
|
||||
public class Worker : BackgroundService
|
||||
{
|
||||
private readonly ILogger<Worker> logger;
|
||||
private readonly IServiceProvider serviceProvider;
|
||||
private readonly WorkerSettings workerSettings;
|
||||
private readonly IIntervalService intervalService;
|
||||
|
||||
public Worker(
|
||||
ILogger<Worker> logger,
|
||||
IServiceProvider serviceProvider,
|
||||
WorkerSettings workerSettings,
|
||||
IIntervalService intervalService
|
||||
)
|
||||
{
|
||||
this.logger = logger;
|
||||
this.serviceProvider = serviceProvider;
|
||||
this.workerSettings = workerSettings;
|
||||
this.intervalService = intervalService;
|
||||
}
|
||||
|
||||
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
||||
{
|
||||
logger.LogInformation("--- Сервис запущен! ---");
|
||||
|
||||
await intervalService.IntervalInitAsync(RunAihitSyncAsync, workerSettings.OccursEvery);
|
||||
|
||||
//while (!stoppingToken.IsCancellationRequested)
|
||||
//{
|
||||
// logger.LogInformation("--- --- --- --- Начало синхронизации --- --- --- ---");
|
||||
// using var scope = serviceProvider.CreateScope();
|
||||
// var services = scope.ServiceProvider;
|
||||
// var syncer = services.GetService<ISyncher>();
|
||||
|
||||
// if (syncer != null) await syncer.InvokeFromDatabase();
|
||||
|
||||
// //var hosts = await hostService.Get().ToListAsync();
|
||||
// //foreach ( var host in hosts ) { logger.LogInformation($"{host.HostName}"); }
|
||||
|
||||
|
||||
// //await attachmentUploader.UploadAsync();
|
||||
// //logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
|
||||
// logger.LogInformation("=== === === === Конец синхронизации === === === ===");
|
||||
|
||||
|
||||
// var mills = (int?) workerSettings?.OccursEvery.TotalMilliseconds ?? 60*1000;
|
||||
// await Task.Delay(mills, stoppingToken);
|
||||
|
||||
//}
|
||||
}
|
||||
|
||||
|
||||
private async Task RunAihitSyncAsync()
|
||||
{
|
||||
logger.LogInformation("--- --- --- --- Начало синхронизации --- --- --- ---");
|
||||
|
||||
using var scope = serviceProvider.CreateScope();
|
||||
var services = scope.ServiceProvider;
|
||||
var syncer = services.GetService<ISyncher>();
|
||||
|
||||
if (syncer != null)
|
||||
await syncer.InvokeFromDatabase();
|
||||
|
||||
logger.LogInformation("=== === === === Конец синхронизации === === === ===");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
{
|
||||
"ConnectionStrings": {
|
||||
"DefaultConnection": "Server=10.99.253.184;Database=parr;User Id=app_parr; Password=PosdfkhT&)%sdfligL&%5546;",
|
||||
"AihitConnection": "Data Source=10.248.19.97; Initial Catalog=mao2;User ID=awhit-ipp-parr;pwd=ET3h$9y1LH#D;TrustServerCertificate=true;",
|
||||
"RedisConnection": "10.99.253.216:6379,password=ParrP@ssPtk202MMdevDvs"
|
||||
},
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.Hosting.Lifetime": "Information"
|
||||
}
|
||||
},
|
||||
"Serilog": {
|
||||
"MinimumLevel": {
|
||||
"Default": "Debug",
|
||||
"Override": {
|
||||
"Microsoft": "Warning",
|
||||
"Microsoft.Hosting.Lifetime": "Debug"
|
||||
}
|
||||
},
|
||||
"WriteTo": [
|
||||
{
|
||||
"Name": "File",
|
||||
"Args": {
|
||||
"path": "log/log-.txt",
|
||||
"rollingInterval": "Day"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MailSettings": {
|
||||
"Host": "uc.dvgd.rzd",
|
||||
"Password": "Robin123",
|
||||
"Port": 143,
|
||||
"SSL": false,
|
||||
"UserName": "IVC_Robot"
|
||||
},
|
||||
"SyncherSettings": {
|
||||
"IncludeAddresses": "aihit@gvc.rzd"
|
||||
},
|
||||
"WorkerSettings": {
|
||||
"OccursEvery": "12:00:00.0"
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
{
|
||||
"ConnectionStrings": {
|
||||
"DefaultConnection": "Server=10.99.253.184;Database=parr;User Id=app_parr; Password=PosdfkhT&)%sdfligL&%5546;",
|
||||
"AihitConnection": "Data Source=10.248.19.97; Initial Catalog=mao2;User ID=awhit-ipp-parr;pwd=ET3h$9y1LH#D;TrustServerCertificate=true;",
|
||||
"RedisConnection": "parr-redis:6379,password=ParrP@ssPtk202MMdevDvs"
|
||||
},
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.Hosting.Lifetime": "Information"
|
||||
}
|
||||
},
|
||||
"Serilog": {
|
||||
"MinimumLevel": {
|
||||
"Default": "Debug",
|
||||
"Override": {
|
||||
"Microsoft": "Warning",
|
||||
"Microsoft.Hosting.Lifetime": "Debug"
|
||||
}
|
||||
},
|
||||
"WriteTo": [
|
||||
{
|
||||
"Name": "File",
|
||||
"Args": {
|
||||
"path": "log/log-.txt",
|
||||
"rollingInterval": "Day"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MailSettings": {
|
||||
"Host": "uc.dvgd.rzd",
|
||||
"Password": "Robin123",
|
||||
"Port": 143,
|
||||
"SSL": false,
|
||||
"UserName": "IVC_Robot"
|
||||
},
|
||||
"SyncherSettings": {
|
||||
"IncludeAddresses": "aihit@gvc.rzd"
|
||||
},
|
||||
"WorkerSettings": {
|
||||
"OccursEvery": "12:00:00.0"
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,8 +6,12 @@
|
||||
|
||||
## Структура
|
||||
|
||||
- PARR.AIHIT - логика синхронизации АИХ ИТ с БД PARR
|
||||
- PARR.AIHITWorker - worker для PARR.AIHIT
|
||||
- ~~PARR.AIHIT - логика синхронизации АИХ ИТ с БД PARR~~
|
||||
- ~~PARR.AIHITWorker - worker для PARR.AIHIT~~
|
||||
- PARR.AIHITLoader - загрузка из АИХ ИТ в очередь по расписанию
|
||||
- PARR.AIHITLoaderWorker
|
||||
- PARR.AIHITSyncer - синхронизация АИХ ИТ из очереди в ПАРР
|
||||
- PARR.AIHITSyncerWorker
|
||||
- PARR.API - API
|
||||
- PARR.BLL - общие методы и настройки для проектов
|
||||
- PARR.Constants - глобальные константы
|
||||
|
||||
Reference in New Issue
Block a user