feat(aihitSyncer): добавлена синхронизация объекта WorkGroup
This commit is contained in:
@@ -18,6 +18,7 @@ namespace PARR.AIHITSyncer.Services
|
||||
private readonly IApplicationInHostService appInHostService;
|
||||
private readonly IApplicationTypeService appTypeService;
|
||||
private readonly ITransformService transformService;
|
||||
private readonly IWorkGroupService workGroupService;
|
||||
|
||||
public List<ApplicationType> AppTypes { get; private set; } = new List<ApplicationType>();
|
||||
|
||||
@@ -27,7 +28,8 @@ namespace PARR.AIHITSyncer.Services
|
||||
IApplicationService appService,
|
||||
IApplicationInHostService appInHostService,
|
||||
IApplicationTypeService appTypeService,
|
||||
ITransformService transformService
|
||||
ITransformService transformService,
|
||||
IWorkGroupService workGroupService
|
||||
)
|
||||
{
|
||||
this.logger = logger;
|
||||
@@ -36,6 +38,7 @@ namespace PARR.AIHITSyncer.Services
|
||||
this.appInHostService = appInHostService;
|
||||
this.appTypeService = appTypeService;
|
||||
this.transformService = transformService;
|
||||
this.workGroupService = workGroupService;
|
||||
}
|
||||
|
||||
|
||||
@@ -80,14 +83,17 @@ namespace PARR.AIHITSyncer.Services
|
||||
private async Task<Host?> CreateHostAsync(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)
|
||||
//WorkGroup = objFromQuery.WorkGroup,
|
||||
WorkGroupItem = await CreateWorkGroupIfNotExistAsync(objFromQuery.WorkGroup),
|
||||
ResponseAreaCode = ((ResolveCode(objFromQuery.ResponseArea) == 0) ? 99 : ResolveCode(objFromQuery.ResponseArea))
|
||||
};
|
||||
|
||||
if (!await hostService.CreateAsync(host) || !await hostService.CommitAsync())
|
||||
@@ -100,6 +106,28 @@ namespace PARR.AIHITSyncer.Services
|
||||
return await hostService.GetHostWithAppsByEkAsync(host.Ek);
|
||||
}
|
||||
|
||||
private async Task<WorkGroup?> CreateWorkGroupIfNotExistAsync(string? workGroupName)
|
||||
{
|
||||
if (string.IsNullOrEmpty(workGroupName) || string.IsNullOrWhiteSpace(workGroupName)) return null;
|
||||
|
||||
var existWorkGroup = await workGroupService.GetByNameAsync(workGroupName);
|
||||
if (existWorkGroup != null)
|
||||
return existWorkGroup;
|
||||
|
||||
var workGroup = new WorkGroup
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
Name = workGroupName.Trim(),
|
||||
};
|
||||
|
||||
if (!await workGroupService.CreateAsync(workGroup) || !await workGroupService.CommitAsync())
|
||||
logger.LogError($"Не удалось создать запись в таблице WorkGroups: {workGroupName}, {workGroup.ToJson()}");
|
||||
else
|
||||
logger.LogInformation($"Создана запись а таблице WorkGroups: {workGroupName}, {workGroup.ToJson()}");
|
||||
|
||||
return await workGroupService.GetAsync(workGroup.Id); ;
|
||||
}
|
||||
|
||||
|
||||
private async Task SyncHostFieldsAsync(Host host, AihitDataMq objFromQuery)
|
||||
{
|
||||
@@ -114,11 +142,20 @@ namespace PARR.AIHITSyncer.Services
|
||||
host.EkStatusCode = ResolveCode(objFromQuery.Status);
|
||||
isChanged = true;
|
||||
}
|
||||
if (objFromQuery.WorkGroup != null && (host.WorkGroup == null || !host.WorkGroup!.Equals(objFromQuery.WorkGroup)))
|
||||
//TODO Удалить после перехода на самостоятельный объект WorkGroup
|
||||
//if (objFromQuery.WorkGroup != null && (host.WorkGroup == null || !host.WorkGroup!.Equals(objFromQuery.WorkGroup)))
|
||||
//{
|
||||
// host.WorkGroup = objFromQuery.WorkGroup;
|
||||
// isChanged = true;
|
||||
//}
|
||||
|
||||
if (objFromQuery.WorkGroup != null && (host.WorkGroupItem == null || !host.WorkGroupItem!.Name.Equals(objFromQuery.WorkGroup)))
|
||||
{
|
||||
host.WorkGroup = objFromQuery.WorkGroup;
|
||||
host.WorkGroupItem = await CreateWorkGroupIfNotExistAsync(objFromQuery.WorkGroup);
|
||||
isChanged = true;
|
||||
}
|
||||
|
||||
|
||||
if (host.ResponseAreaCode != ((ResolveCode(objFromQuery.ResponseArea) == 0) ? 99 : ResolveCode(objFromQuery.ResponseArea)))
|
||||
{//TODO Возможно проще выгружать с помощью INCLUDE зону ответственности и сравнивать string
|
||||
host.ResponseAreaCode = ((ResolveCode(objFromQuery.ResponseArea) == 0) ? 99 : ResolveCode(objFromQuery.ResponseArea));
|
||||
|
||||
@@ -51,7 +51,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("TemplateId");
|
||||
|
||||
b.ToTable("AgentHistories");
|
||||
b.ToTable("AgentHistories", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.AgentHistoryLevel", b =>
|
||||
@@ -72,7 +72,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("AgentHistoryLevels");
|
||||
b.ToTable("AgentHistoryLevels", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -101,7 +101,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("WorkGroupId");
|
||||
|
||||
b.ToTable("AppInWorkInWorkGroups");
|
||||
b.ToTable("AppInWorkInWorkGroups", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.Application", b =>
|
||||
@@ -130,7 +130,7 @@ namespace PARR.DAL.Migrations
|
||||
b.HasIndex("Name", "ApplicationTypeId")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("Applications");
|
||||
b.ToTable("Applications", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.ApplicationInHost", b =>
|
||||
@@ -157,7 +157,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("HostId");
|
||||
|
||||
b.ToTable("ApplicationsInHost");
|
||||
b.ToTable("ApplicationsInHost", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.ApplicationType", b =>
|
||||
@@ -181,7 +181,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("ApplicationTypes");
|
||||
b.ToTable("ApplicationTypes", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -294,7 +294,7 @@ namespace PARR.DAL.Migrations
|
||||
b.HasIndex("WorkId", "ApplicationId")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("ApplicationsInWorks");
|
||||
b.ToTable("ApplicationsInWorks", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.EkStatus", b =>
|
||||
@@ -311,7 +311,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Code");
|
||||
|
||||
b.ToTable("EkStatuses");
|
||||
b.ToTable("EkStatuses", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -374,7 +374,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("EsppSchTypes");
|
||||
b.ToTable("EsppSchTypes", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -443,7 +443,7 @@ namespace PARR.DAL.Migrations
|
||||
b.HasIndex("TypeScheduleId", "TypeId")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("EsppSchTypeConfigs");
|
||||
b.ToTable("EsppSchTypeConfigs", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -546,7 +546,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("EsppSchTypeSchedules");
|
||||
b.ToTable("EsppSchTypeSchedules", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -614,7 +614,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("TypeId");
|
||||
|
||||
b.ToTable("EsppSchTypeValues");
|
||||
b.ToTable("EsppSchTypeValues", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -1383,7 +1383,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("TypeValueId");
|
||||
|
||||
b.ToTable("EsppSchValues");
|
||||
b.ToTable("EsppSchValues", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.Host", b =>
|
||||
@@ -1430,7 +1430,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("Ek", "IP");
|
||||
|
||||
b.ToTable("Hosts");
|
||||
b.ToTable("Hosts", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.Order", b =>
|
||||
@@ -1482,7 +1482,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("TemplateId");
|
||||
|
||||
b.ToTable("Orders");
|
||||
b.ToTable("Orders", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.OrderStatus", b =>
|
||||
@@ -1503,7 +1503,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Code");
|
||||
|
||||
b.ToTable("OrderStatuses");
|
||||
b.ToTable("OrderStatuses", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -1562,7 +1562,7 @@ namespace PARR.DAL.Migrations
|
||||
b.HasIndex("EsppId")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("Processes");
|
||||
b.ToTable("Processes", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.ResponseArea", b =>
|
||||
@@ -1579,7 +1579,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Code");
|
||||
|
||||
b.ToTable("ResponseAreas");
|
||||
b.ToTable("ResponseAreas", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -1690,7 +1690,7 @@ namespace PARR.DAL.Migrations
|
||||
b.HasIndex("Name")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("Robots");
|
||||
b.ToTable("Robots", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -1745,7 +1745,7 @@ namespace PARR.DAL.Migrations
|
||||
b.HasIndex("TemplateId", "RobotCode")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("RobotConfigurations");
|
||||
b.ToTable("RobotConfigurations", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.RobotHistory", b =>
|
||||
@@ -1780,7 +1780,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("TaskStatusCode");
|
||||
|
||||
b.ToTable("RobotHistories");
|
||||
b.ToTable("RobotHistories", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.RobotHistoryLevel", b =>
|
||||
@@ -1801,7 +1801,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Level");
|
||||
|
||||
b.ToTable("RobotHistoryLevels");
|
||||
b.ToTable("RobotHistoryLevels", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -1848,7 +1848,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Code");
|
||||
|
||||
b.ToTable("RobotStatuses");
|
||||
b.ToTable("RobotStatuses", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -1896,7 +1896,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Roles");
|
||||
b.ToTable("Roles", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -1930,7 +1930,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Name");
|
||||
|
||||
b.ToTable("Settings");
|
||||
b.ToTable("Settings", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -2024,7 +2024,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("ProcessId");
|
||||
|
||||
b.ToTable("Subprocesses");
|
||||
b.ToTable("Subprocesses", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.TaskStatus", b =>
|
||||
@@ -2045,7 +2045,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Code");
|
||||
|
||||
b.ToTable("TaskStatuses");
|
||||
b.ToTable("TaskStatuses", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -2108,7 +2108,7 @@ namespace PARR.DAL.Migrations
|
||||
b.HasIndex("Name")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("Templates");
|
||||
b.ToTable("Templates", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.Tnk", b =>
|
||||
@@ -2140,7 +2140,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("SubprocessId");
|
||||
|
||||
b.ToTable("Tnks");
|
||||
b.ToTable("Tnks", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.User", b =>
|
||||
@@ -2171,7 +2171,7 @@ namespace PARR.DAL.Migrations
|
||||
b.HasIndex("Ip")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("Users");
|
||||
b.ToTable("Users", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.UsersInRole", b =>
|
||||
@@ -2186,7 +2186,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("UserId");
|
||||
|
||||
b.ToTable("UsersInRoles");
|
||||
b.ToTable("UsersInRoles", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.Work", b =>
|
||||
@@ -2218,7 +2218,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("TnkId");
|
||||
|
||||
b.ToTable("Works");
|
||||
b.ToTable("Works", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.WorkGroup", b =>
|
||||
@@ -2236,7 +2236,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("WorkGroups");
|
||||
b.ToTable("WorkGroups", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.AgentHistory", b =>
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace PARR.DAL.Models
|
||||
|
||||
public DateTimeOffset? DateModified { get; set; }
|
||||
|
||||
public string Ek { get; set; }
|
||||
public required string Ek { get; set; }
|
||||
|
||||
public int EkStatusCode { get; set; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user