Статусы ЭК вынесены из Hosts. Добавлен фильтр по статусам эк в генератор.
This commit is contained in:
@@ -214,7 +214,9 @@ namespace PARR.AIHIT
|
|||||||
await GetAppTypesAsync();
|
await GetAppTypesAsync();
|
||||||
|
|
||||||
//Получаем зоны ответственности из БД
|
//Получаем зоны ответственности из БД
|
||||||
var respAreas = settingService.Get().Where(ra => ra.Group == AIHTITSettings.RespAreaGroupName).ToList();
|
var respAreas = await settingService.Get()
|
||||||
|
.Where(ra => ra.Group == AIHTITSettings.RespAreaGroupName)
|
||||||
|
.ToListAsync();
|
||||||
|
|
||||||
//Запускаем хранимую процедуру в АИХ ИТ и складываем в таблицу RawDataEKs, предварительно почистив старые данные
|
//Запускаем хранимую процедуру в АИХ ИТ и складываем в таблицу RawDataEKs, предварительно почистив старые данные
|
||||||
//foreach (var respArea in respAreas)
|
//foreach (var respArea in respAreas)
|
||||||
@@ -249,17 +251,24 @@ namespace PARR.AIHIT
|
|||||||
//Разбираем сырые данные
|
//Разбираем сырые данные
|
||||||
|
|
||||||
//Получаем интересующие статусы ЭК
|
//Получаем интересующие статусы ЭК
|
||||||
var statusList = settingService.Get().Where(s => s.Group == AIHTITSettings.StatusGroupName).Select(s => s.Value.Trim()).ToList();
|
var statusList = await settingService.Get()
|
||||||
if (statusList == null || statusList.Count == 0) return;
|
.Where(s => s.Group == AIHTITSettings.StatusGroupName)
|
||||||
|
.Select(s => s.Value.Trim())
|
||||||
|
.ToListAsync();
|
||||||
|
|
||||||
|
if (statusList == null || statusList.Count == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
//Берём только активные шаблоны
|
//Берём только активные шаблоны
|
||||||
var eks = rawDataEKService.Get().Where(e => e.IsActive == "t"
|
var eks = await rawDataEKService.Get()
|
||||||
&& (e.Status != null && statusList.Contains(e.Status.Trim()))
|
.Where(e => e.IsActive == "t" && (e.Status != null && statusList.Contains(e.Status.Trim())))
|
||||||
).ToList();
|
.ToListAsync();
|
||||||
|
|
||||||
foreach (var ek in eks)
|
foreach (var ek in eks)
|
||||||
{
|
{
|
||||||
if (ek.IP == null) continue;
|
if (ek.IP == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
var foundHost = await hostService.GetHostWithAppsAsync(ek.IP);
|
var foundHost = await hostService.GetHostWithAppsAsync(ek.IP);
|
||||||
var mappedHost = mapper.Map<Host>(ek);
|
var mappedHost = mapper.Map<Host>(ek);
|
||||||
|
|
||||||
|
|||||||
@@ -21,5 +21,10 @@
|
|||||||
/// ЭК, принимает регулярное выражение. Например: *, ВРТ-*-ДВС
|
/// ЭК, принимает регулярное выражение. Например: *, ВРТ-*-ДВС
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public required string Ek { get; set; }
|
public required string Ek { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Статус ЭК. 0 - все статусы, 1,2,3,4,5,6,7,9
|
||||||
|
/// </summary>
|
||||||
|
public int Status { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,8 @@ namespace PARR.API.Controllers.V1
|
|||||||
Action = request.Action,
|
Action = request.Action,
|
||||||
ApplicationId = request.ApplicationId,
|
ApplicationId = request.ApplicationId,
|
||||||
Ek = request.Ek,
|
Ek = request.Ek,
|
||||||
WorkId = request.WorkId
|
WorkId = request.WorkId,
|
||||||
|
StatusEk = request.Status
|
||||||
};
|
};
|
||||||
|
|
||||||
var msg = JsonSerializer.Serialize(obj);
|
var msg = JsonSerializer.Serialize(obj);
|
||||||
|
|||||||
@@ -29,6 +29,10 @@ namespace PARR.API.Validators
|
|||||||
RuleFor(t => t.Action)
|
RuleFor(t => t.Action)
|
||||||
.Must(t => t.ToLower() == GenerateTemplateActionsEnum.create.ToString() || t.ToLower() == GenerateTemplateActionsEnum.deactivate.ToString())
|
.Must(t => t.ToLower() == GenerateTemplateActionsEnum.create.ToString() || t.ToLower() == GenerateTemplateActionsEnum.deactivate.ToString())
|
||||||
.WithMessage($"Допустимые значения: {GenerateTemplateActionsEnum.create}, {GenerateTemplateActionsEnum.deactivate}");
|
.WithMessage($"Допустимые значения: {GenerateTemplateActionsEnum.create}, {GenerateTemplateActionsEnum.deactivate}");
|
||||||
|
|
||||||
|
//0 - все статусы, 1,2,3,4,5,6,7,9
|
||||||
|
var ekStatuses = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7, 9 };
|
||||||
|
RuleFor(t => t.Status).Must(t => ekStatuses.Contains(t)).WithMessage("Допустимые значения: 0 - все статусы, 1,2,3,4,5,6,7,9");
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<bool> IsApplicationContainWork(GeneratorTemplateRequest request, Guid applicationId)
|
private async Task<bool> IsApplicationContainWork(GeneratorTemplateRequest request, Guid applicationId)
|
||||||
|
|||||||
@@ -24,5 +24,10 @@
|
|||||||
/// ЭК, принимает регулярное выражение. Например: *, ВРТ-*-ДВС
|
/// ЭК, принимает регулярное выражение. Например: *, ВРТ-*-ДВС
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public required string Ek { get; set; }
|
public required string Ek { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Статус ЭК. Допустимые значения: 0 - все статусы, 1,2,3,4,5,6,7,9
|
||||||
|
/// </summary>
|
||||||
|
public int StatusEk { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ namespace PARR.DAL.Context
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public DbSet<Host> Hosts { get; set; }
|
public DbSet<Host> Hosts { get; set; }
|
||||||
|
public DbSet<EkStatus> EkStatuses { get; set; }
|
||||||
public DbSet<Application> Applications { get; set; }
|
public DbSet<Application> Applications { get; set; }
|
||||||
public DbSet<ApplicationType> ApplicationTypes { get; set; }
|
public DbSet<ApplicationType> ApplicationTypes { get; set; }
|
||||||
public DbSet<ApplicationInHost> ApplicationsInHosts { get; set; }
|
public DbSet<ApplicationInHost> ApplicationsInHosts { get; set; }
|
||||||
@@ -42,6 +43,7 @@ namespace PARR.DAL.Context
|
|||||||
|
|
||||||
public DbSet<Models.Setting> Setting { get; set; }
|
public DbSet<Models.Setting> Setting { get; set; }
|
||||||
|
|
||||||
|
|
||||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
{
|
{
|
||||||
base.OnModelCreating(modelBuilder);
|
base.OnModelCreating(modelBuilder);
|
||||||
@@ -121,6 +123,20 @@ namespace PARR.DAL.Context
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity<EkStatus>(f =>
|
||||||
|
{
|
||||||
|
f.HasData(
|
||||||
|
new { Code = (int)EkStatusEnum.New, Name = "1-Новый" },
|
||||||
|
new { Code = (int)EkStatusEnum.Preapre, Name = "2-Подготовка к эксплуатации" },
|
||||||
|
new { Code = (int)EkStatusEnum.Exploitation, Name = "3-В эксплуатации" },
|
||||||
|
new { Code = (int)EkStatusEnum.Repair, Name = "4-В ремонте" },
|
||||||
|
new { Code = (int)EkStatusEnum.Reserve, Name = "5-В резерве" },
|
||||||
|
new { Code = (int)EkStatusEnum.OutOfService, Name = "6-Выведен из эксплуатации" },
|
||||||
|
new { Code = (int)EkStatusEnum.Test, Name = "7-Тестовый" },
|
||||||
|
new { Code = (int)EkStatusEnum.Development, Name = "9-В разработке" }
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
53
PARR.DAL/Contracts/EkStatusEnum.cs
Normal file
53
PARR.DAL/Contracts/EkStatusEnum.cs
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
namespace PARR.DAL.Contracts
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Статусы ЭК
|
||||||
|
/// </summary>
|
||||||
|
public enum EkStatusEnum
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Все записи, используется только внутри проекта
|
||||||
|
/// </summary>
|
||||||
|
All = 0,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 1-Новый
|
||||||
|
/// </summary>
|
||||||
|
New = 1,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 2-Подготовка к эксплуатации
|
||||||
|
/// </summary>
|
||||||
|
Preapre = 2,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 3-В эксплуатации
|
||||||
|
/// </summary>
|
||||||
|
Exploitation = 3,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 4-В ремонте
|
||||||
|
/// </summary>
|
||||||
|
Repair = 4,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 5-В резерве
|
||||||
|
/// </summary>
|
||||||
|
Reserve = 5,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 6-Выведен из эксплуатации
|
||||||
|
/// </summary>
|
||||||
|
OutOfService = 6,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 7-Тестовый
|
||||||
|
/// </summary>
|
||||||
|
Test = 7,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 9-В разработке
|
||||||
|
/// </summary>
|
||||||
|
Development = 9
|
||||||
|
}
|
||||||
|
}
|
||||||
1531
PARR.DAL/Migrations/20230925040952_TblCreateEkStatus.Designer.cs
generated
Normal file
1531
PARR.DAL/Migrations/20230925040952_TblCreateEkStatus.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
84
PARR.DAL/Migrations/20230925040952_TblCreateEkStatus.cs
Normal file
84
PARR.DAL/Migrations/20230925040952_TblCreateEkStatus.cs
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
|
||||||
|
|
||||||
|
namespace PARR.DAL.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class TblCreateEkStatus : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.AddColumn<int>(
|
||||||
|
name: "EkStatusCode",
|
||||||
|
table: "Hosts",
|
||||||
|
type: "integer",
|
||||||
|
nullable: false,
|
||||||
|
defaultValue: 3);
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "EkStatuses",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Code = table.Column<int>(type: "integer", nullable: false)
|
||||||
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
||||||
|
Name = table.Column<string>(type: "text", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_EkStatuses", x => x.Code);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.InsertData(
|
||||||
|
table: "EkStatuses",
|
||||||
|
columns: new[] { "Code", "Name" },
|
||||||
|
values: new object[,]
|
||||||
|
{
|
||||||
|
{ 1, "1-Новый" },
|
||||||
|
{ 2, "2-Подготовка к эксплуатации" },
|
||||||
|
{ 3, "3-В эксплуатации" },
|
||||||
|
{ 4, "4-В ремонте" },
|
||||||
|
{ 5, "5-В резерве" },
|
||||||
|
{ 6, "6-Выведен из эксплуатации" },
|
||||||
|
{ 7, "7-Тестовый" },
|
||||||
|
{ 9, "9-В разработке" }
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_Hosts_EkStatusCode",
|
||||||
|
table: "Hosts",
|
||||||
|
column: "EkStatusCode");
|
||||||
|
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_Hosts_EkStatuses_EkStatusCode",
|
||||||
|
table: "Hosts",
|
||||||
|
column: "EkStatusCode",
|
||||||
|
principalTable: "EkStatuses",
|
||||||
|
principalColumn: "Code",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropForeignKey(
|
||||||
|
name: "FK_Hosts_EkStatuses_EkStatusCode",
|
||||||
|
table: "Hosts");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "EkStatuses");
|
||||||
|
|
||||||
|
migrationBuilder.DropIndex(
|
||||||
|
name: "IX_Hosts_EkStatusCode",
|
||||||
|
table: "Hosts");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "EkStatusCode",
|
||||||
|
table: "Hosts");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -518,6 +518,65 @@ namespace PARR.DAL.Migrations
|
|||||||
b.ToTable("ApplicationsInWorks");
|
b.ToTable("ApplicationsInWorks");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("PARR.DAL.Models.EkStatus", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Code")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Code"));
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.HasKey("Code");
|
||||||
|
|
||||||
|
b.ToTable("EkStatuses");
|
||||||
|
|
||||||
|
b.HasData(
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Code = 1,
|
||||||
|
Name = "1-Новый"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Code = 2,
|
||||||
|
Name = "2-Подготовка к эксплуатации"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Code = 3,
|
||||||
|
Name = "3-В эксплуатации"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Code = 4,
|
||||||
|
Name = "4-В ремонте"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Code = 5,
|
||||||
|
Name = "5-В резерве"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Code = 6,
|
||||||
|
Name = "6-Выведен из эксплуатации"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Code = 7,
|
||||||
|
Name = "7-Тестовый"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Code = 9,
|
||||||
|
Name = "9-В разработке"
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("PARR.DAL.Models.Host", b =>
|
modelBuilder.Entity("PARR.DAL.Models.Host", b =>
|
||||||
{
|
{
|
||||||
b.Property<Guid>("Id")
|
b.Property<Guid>("Id")
|
||||||
@@ -534,6 +593,9 @@ namespace PARR.DAL.Migrations
|
|||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasColumnType("text");
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<int>("EkStatusCode")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
b.Property<string>("IP")
|
b.Property<string>("IP")
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasColumnType("text");
|
.HasColumnType("text");
|
||||||
@@ -549,6 +611,8 @@ namespace PARR.DAL.Migrations
|
|||||||
|
|
||||||
b.HasKey("Id");
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("EkStatusCode");
|
||||||
|
|
||||||
b.ToTable("Hosts");
|
b.ToTable("Hosts");
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1193,6 +1257,17 @@ namespace PARR.DAL.Migrations
|
|||||||
b.Navigation("Work");
|
b.Navigation("Work");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("PARR.DAL.Models.Host", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("PARR.DAL.Models.EkStatus", "EkStatus")
|
||||||
|
.WithMany("Hosts")
|
||||||
|
.HasForeignKey("EkStatusCode")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Navigation("EkStatus");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("PARR.DAL.Models.Subprocess", b =>
|
modelBuilder.Entity("PARR.DAL.Models.Subprocess", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("PARR.DAL.Models.Process", "Process")
|
b.HasOne("PARR.DAL.Models.Process", "Process")
|
||||||
@@ -1369,6 +1444,11 @@ namespace PARR.DAL.Migrations
|
|||||||
b.Navigation("Templates");
|
b.Navigation("Templates");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("PARR.DAL.Models.EkStatus", b =>
|
||||||
|
{
|
||||||
|
b.Navigation("Hosts");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("PARR.DAL.Models.Host", b =>
|
modelBuilder.Entity("PARR.DAL.Models.Host", b =>
|
||||||
{
|
{
|
||||||
b.Navigation("ApplicationsInHosts");
|
b.Navigation("ApplicationsInHosts");
|
||||||
|
|||||||
17
PARR.DAL/Models/EkStatus.cs
Normal file
17
PARR.DAL/Models/EkStatus.cs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace PARR.DAL.Models
|
||||||
|
{
|
||||||
|
[Table("EkStatuses")]
|
||||||
|
public class EkStatus
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
public int Code { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
|
public string Name { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public ICollection<Host> Hosts { get; set; } = new HashSet<Host>();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -16,11 +16,14 @@ namespace PARR.DAL.Models
|
|||||||
|
|
||||||
public string Ek { get; set; }
|
public string Ek { get; set; }
|
||||||
|
|
||||||
|
public int EkStatusCode { get; set; }
|
||||||
|
|
||||||
public required string IP { get; set; }
|
public required string IP { get; set; }
|
||||||
|
|
||||||
//public string? RegionalEK { get; set; }
|
//public string? RegionalEK { get; set; }
|
||||||
//public string? LinkEK { get; set; }
|
//public string? LinkEK { get; set; }
|
||||||
|
|
||||||
|
//TODO: удалить поле Status, вместо него использовать EkStatusCode
|
||||||
public string? Status { get; set; }
|
public string? Status { get; set; }
|
||||||
|
|
||||||
public string? WorkGroup { get; set; }
|
public string? WorkGroup { get; set; }
|
||||||
@@ -31,5 +34,9 @@ namespace PARR.DAL.Models
|
|||||||
public ICollection<ApplicationInHost> ApplicationsInHosts { get; set; } = new HashSet<ApplicationInHost>();
|
public ICollection<ApplicationInHost> ApplicationsInHosts { get; set; } = new HashSet<ApplicationInHost>();
|
||||||
|
|
||||||
public ICollection<Template> Templates { get; set; } = new HashSet<Template>();
|
public ICollection<Template> Templates { get; set; } = new HashSet<Template>();
|
||||||
|
|
||||||
|
|
||||||
|
[ForeignKey(nameof(EkStatusCode))]
|
||||||
|
public EkStatus? EkStatus { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,9 +44,10 @@ namespace PARR.GeneratorTemplates
|
|||||||
// logger.LogInformation($"Привет откуда надо!!! ${msg}");
|
// logger.LogInformation($"Привет откуда надо!!! ${msg}");
|
||||||
// //todo: идем дальеш!
|
// //todo: идем дальеш!
|
||||||
|
|
||||||
//string msg = "{\"WorkId\":\"91219bec-e5f7-4a1a-b4c9-c135035d2498\",\"ApplicationId\":\"13044a1f-fa0c-476f-b501-2b8d06bac9f8\",\"Action\":\"create\",\"Ek\":\"вРТ-*RZD\"}";
|
|
||||||
string msg = "{\"WorkId\":\"91219bec-e5f7-4a1a-b4c9-c135035d2498\",\"ApplicationId\":\"13044a1f-fa0c-476f-b501-2b8d06bac9f8\",\"Action\":\"create\",\"Ek\":\"*ДВС\"}";
|
// string msg = "{\"WorkId\":\"91219bec-e5f7-4a1a-b4c9-c135035d2498\",\"ApplicationId\":\"13044a1f-fa0c-476f-b501-2b8d06bac9f8\",\"Action\":\"create\",\"Ek\":\"ВРТ*ДВС\",\"StatusEk\":0}";
|
||||||
//string msg = "{\"WorkId\":\"91219bec-e5f7-4a1a-b4c9-c135035d2498\",\"ApplicationId\":\"13044a1f-fa0c-476f-b501-2b8d06bac9f8\",\"Action\":\"deactivate\",\"Ek\":\"*\"}";
|
string msg = "{\"WorkId\":\"91219bec-e5f7-4a1a-b4c9-c135035d2498\",\"ApplicationId\":\"13044a1f-fa0c-476f-b501-2b8d06bac9f8\",\"Action\":\"deactivate\",\"Ek\":\"ВРТ*ДВС\",\"StatusEk\":0}";
|
||||||
|
|
||||||
await GenerateTemplates(msg);
|
await GenerateTemplates(msg);
|
||||||
|
|
||||||
// // проверить как ту дела с асинком
|
// // проверить как ту дела с асинком
|
||||||
|
|||||||
@@ -38,13 +38,12 @@ namespace PARR.GeneratorTemplates.Services
|
|||||||
string ekPattern = SqlHelpers.RegexToLike(query.Ek);
|
string ekPattern = SqlHelpers.RegexToLike(query.Ek);
|
||||||
|
|
||||||
// список хостов для создания шаблонов
|
// список хостов для создания шаблонов
|
||||||
var hosts = await hostService.Get()
|
var queryHosts = hostService.Get()
|
||||||
.Include(t => t.ApplicationsInHosts)
|
.Include(t => t.ApplicationsInHosts)
|
||||||
.ThenInclude(t => t.Application).ThenInclude(t => t!.ApplicationsInWorks).ThenInclude(w => w.Work)
|
.ThenInclude(t => t.Application).ThenInclude(t => t!.ApplicationsInWorks).ThenInclude(w => w.Work)
|
||||||
.Include(t => t.Templates)
|
.Include(t => t.Templates)
|
||||||
.ThenInclude(w => w.ApplicationsInWork)
|
.ThenInclude(w => w.ApplicationsInWork)
|
||||||
.Where(t =>
|
.Where(t =>
|
||||||
//TODO: add status ЭК
|
|
||||||
t.ApplicationsInHosts.Any(h =>
|
t.ApplicationsInHosts.Any(h =>
|
||||||
h.ApplicationId == query.ApplicationId
|
h.ApplicationId == query.ApplicationId
|
||||||
&& h.Application!.ApplicationsInWorks.Any(w => w.WorkId == query.WorkId)
|
&& h.Application!.ApplicationsInWorks.Any(w => w.WorkId == query.WorkId)
|
||||||
@@ -52,7 +51,13 @@ namespace PARR.GeneratorTemplates.Services
|
|||||||
&& EF.Functions.Like(t.Ek.ToLower(), ekPattern)
|
&& EF.Functions.Like(t.Ek.ToLower(), ekPattern)
|
||||||
// смотрим что нет такого шаблона
|
// смотрим что нет такого шаблона
|
||||||
&& t.Templates.Any(templ => templ.ApplicationsInWork!.WorkId == query.WorkId && templ.ApplicationsInWork.ApplicationId == query.ApplicationId) == false
|
&& t.Templates.Any(templ => templ.ApplicationsInWork!.WorkId == query.WorkId && templ.ApplicationsInWork.ApplicationId == query.ApplicationId) == false
|
||||||
)
|
);
|
||||||
|
|
||||||
|
// статус ЭК
|
||||||
|
if (query.StatusEk > 0)
|
||||||
|
queryHosts = queryHosts.Where(t => t.EkStatusCode == query.StatusEk);
|
||||||
|
|
||||||
|
var hosts = await queryHosts
|
||||||
.AsSplitQuery()
|
.AsSplitQuery()
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
@@ -104,16 +109,22 @@ namespace PARR.GeneratorTemplates.Services
|
|||||||
// делаем sql формат для like из запроса.
|
// делаем sql формат для like из запроса.
|
||||||
string ekPattern = SqlHelpers.RegexToLike(query.Ek);
|
string ekPattern = SqlHelpers.RegexToLike(query.Ek);
|
||||||
|
|
||||||
var existTemplates = await templateService.Get()
|
var queryTemplates = templateService.Get()
|
||||||
.Include(t => t.Host)
|
.Include(t => t.Host)
|
||||||
.Include(t => t.ApplicationsInWork)
|
.Include(t => t.ApplicationsInWork)
|
||||||
.Where(t =>
|
.Where(t =>
|
||||||
t.IsActive == true
|
t.IsActive == true
|
||||||
&& t.ApplicationsInWork!.ApplicationId == query.ApplicationId
|
&& t.ApplicationsInWork!.ApplicationId == query.ApplicationId
|
||||||
&& t.ApplicationsInWork!.WorkId == query.WorkId
|
&& t.ApplicationsInWork!.WorkId == query.WorkId
|
||||||
//TODO: add status ЭК
|
|
||||||
&& EF.Functions.Like(t.Host!.Ek.ToLower(), ekPattern)
|
&& EF.Functions.Like(t.Host!.Ek.ToLower(), ekPattern)
|
||||||
)
|
);
|
||||||
|
|
||||||
|
// статус ЭК
|
||||||
|
if (query.StatusEk > 0)
|
||||||
|
queryTemplates = queryTemplates.Where(t => t.Host!.EkStatusCode == query.StatusEk);
|
||||||
|
|
||||||
|
var existTemplates = await queryTemplates
|
||||||
|
.AsSplitQuery()
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
if (!existTemplates.Any())
|
if (!existTemplates.Any())
|
||||||
|
|||||||
Reference in New Issue
Block a user