Связь Hosts & templates. Переделал респонс для get all templates

This commit is contained in:
Mikhail Trubnikov
2023-09-19 15:47:50 +10:00
parent 7b17d3260d
commit bb2e063d2f
7 changed files with 1471 additions and 17 deletions

View File

@@ -43,7 +43,14 @@ namespace PARR.API.Controllers.V1
var paginationFilter = mapper.Map<PaginationFilter>(paginationQuery);
IQueryable<Template> query = templateService.Get()
.OrderBy(t => t.Name);
.Include(h => h.Host)
.Include(a => a.ApplicationsInWork)
.ThenInclude(w => w!.Work)
.ThenInclude(t => t!.Tnk)
.ThenInclude(s => s!.Subprocess)
.ThenInclude(p => p!.Process)
.OrderBy(t => t.Name)
.AsSplitQuery();
if (filter.StatusCode.HasValue)
{

View File

@@ -26,22 +26,23 @@ namespace PARR.API.MappingProfiles
CreateMap<V1_JobMode, JobModeResponse>();
//CreateMap<Template, TemplateResponse>()
// .ForMember(d => d.ParrTemplateId, o => o.MapFrom(s => s.Id))
// .ForMember(d => d.Assignment, o => o.MapFrom(s => s.WorkGroup))
// .ForMember(d => d.Title, o => o.MapFrom(s => s.ShortDescription))
// .ForMember(d => d.Branch, o => o.MapFrom(s => s.ResponseArea))
// .ForMember(d => d.SlaInterval, o => o.MapFrom(s => s.Duration))
// .ForMember(d => d.ConfigurationItem, o => o.MapFrom(s => s.EK))
// .ForMember(d => d.ContactName, o => o.MapFrom(s => s.Initiator))
// .ForMember(d => d.Description, o => o.MapFrom(s => s.FullDescription))
// .ForMember(d => d.ResolutionCode, o => o.MapFrom(s => s.ClosingCode))
// .ForMember(d => d.Resolution, o => o.MapFrom(s => s.Solution))
// .ForMember(d => d.RzdMTNKprocess, o => o.MapFrom(s => s.Process))
// .ForMember(d => d.RzdMTNKsubprocess, o => o.MapFrom(s => s.SubProcess))
// .ForMember(d => d.RzdMTNKtnk, o => o.MapFrom(s => s.TNK))
// .ForMember(d => d.RzdMTNKjob, o => o.MapFrom(s => s.Work))
// .ForMember(d => d.Assignee, o => o.MapFrom(s => s.Worker));
CreateMap<Template, TemplateResponse>()
.ForMember(d => d.ParrTemplateId, o => o.MapFrom(s => s.Id))
.ForMember(d => d.Assignment, o => o.MapFrom(s => s.Host!.WorkGroup))
.ForMember(d => d.Title, o => o.MapFrom(s => s.ApplicationsInWork!.Work!.ShortDescription))
.ForMember(d => d.Branch, o => o.MapFrom(s => s.Host!.ResponseArea))
.ForMember(d => d.SlaInterval, o => o.MapFrom(s => s.ApplicationsInWork!.Work!.TemplateDuration))
.ForMember(d => d.ConfigurationItem, o => o.MapFrom(s => s.Host!.Ek))
//.ForMember(d => d.ContactName, o => o.MapFrom(s => s.Initiator))
.ForMember(d => d.Description, o => o.MapFrom(s => s.ApplicationsInWork!.Work!.FullDescription))
//.ForMember(d => d.ResolutionCode, o => o.MapFrom(s => s.ClosingCode))
.ForMember(d => d.Resolution, o => o.MapFrom(s => s.ApplicationsInWork!.Work!.Solution))
.ForMember(d => d.RzdMTNKprocess, o => o.MapFrom(s => s.ApplicationsInWork!.Work!.Tnk!.Subprocess!.Process!.Name))
.ForMember(d => d.RzdMTNKsubprocess, o => o.MapFrom(s => s.ApplicationsInWork!.Work!.Tnk!.Subprocess!.Name))
.ForMember(d => d.RzdMTNKtnk, o => o.MapFrom(s => s.ApplicationsInWork!.Work!.Tnk!.Name))
.ForMember(d => d.RzdMTNKjob, o => o.MapFrom(s => s.ApplicationsInWork!.Work!.Name))
//.ForMember(d => d.Assignee, o => o.MapFrom(s => s.Worker))
;
CreateMap<TemplateResponse, TemplateStringResponse>();

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,81 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace PARR.DAL.Migrations
{
/// <inheritdoc />
public partial class TblHostsRelToTemplate : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<Guid>(
name: "HostId",
table: "Templates",
type: "uuid",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"));
migrationBuilder.AddColumn<Guid>(
name: "HostId",
table: "Hosts",
type: "uuid",
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_Templates_HostId",
table: "Templates",
column: "HostId");
migrationBuilder.CreateIndex(
name: "IX_Hosts_HostId",
table: "Hosts",
column: "HostId");
migrationBuilder.AddForeignKey(
name: "FK_Hosts_Hosts_HostId",
table: "Hosts",
column: "HostId",
principalTable: "Hosts",
principalColumn: "Id");
migrationBuilder.AddForeignKey(
name: "FK_Templates_Hosts_HostId",
table: "Templates",
column: "HostId",
principalTable: "Hosts",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Hosts_Hosts_HostId",
table: "Hosts");
migrationBuilder.DropForeignKey(
name: "FK_Templates_Hosts_HostId",
table: "Templates");
migrationBuilder.DropIndex(
name: "IX_Templates_HostId",
table: "Templates");
migrationBuilder.DropIndex(
name: "IX_Hosts_HostId",
table: "Hosts");
migrationBuilder.DropColumn(
name: "HostId",
table: "Templates");
migrationBuilder.DropColumn(
name: "HostId",
table: "Hosts");
}
}
}

View File

@@ -391,6 +391,9 @@ namespace PARR.DAL.Migrations
.IsRequired()
.HasColumnType("text");
b.Property<Guid?>("HostId")
.HasColumnType("uuid");
b.Property<string>("IP")
.IsRequired()
.HasColumnType("text");
@@ -406,6 +409,8 @@ namespace PARR.DAL.Migrations
b.HasKey("Id");
b.HasIndex("HostId");
b.ToTable("Hosts");
});
@@ -556,6 +561,9 @@ namespace PARR.DAL.Migrations
b.Property<DateTimeOffset?>("DateModified")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("HostId")
.HasColumnType("uuid");
b.Property<bool>("IsActive")
.HasColumnType("boolean");
@@ -570,6 +578,8 @@ namespace PARR.DAL.Migrations
b.HasIndex("ApplicationInWorkId");
b.HasIndex("HostId");
b.HasIndex("Name")
.IsUnique();
@@ -1055,6 +1065,13 @@ namespace PARR.DAL.Migrations
b.Navigation("Work");
});
modelBuilder.Entity("PARR.DAL.Models.Host", b =>
{
b.HasOne("PARR.DAL.Models.Host", null)
.WithMany("Hosts")
.HasForeignKey("HostId");
});
modelBuilder.Entity("PARR.DAL.Models.Subprocess", b =>
{
b.HasOne("PARR.DAL.Models.Process", "Process")
@@ -1074,6 +1091,12 @@ namespace PARR.DAL.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PARR.DAL.Models.Host", "Host")
.WithMany()
.HasForeignKey("HostId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PARR.DAL.Models.StatusTemplate", "StatusTemplate")
.WithMany("Templates")
.HasForeignKey("StatusCode")
@@ -1082,6 +1105,8 @@ namespace PARR.DAL.Migrations
b.Navigation("ApplicationsInWork");
b.Navigation("Host");
b.Navigation("StatusTemplate");
});
@@ -1226,6 +1251,8 @@ namespace PARR.DAL.Migrations
modelBuilder.Entity("PARR.DAL.Models.Host", b =>
{
b.Navigation("ApplicationsInHosts");
b.Navigation("Hosts");
});
modelBuilder.Entity("PARR.DAL.Models.Process", b =>

View File

@@ -29,5 +29,7 @@ namespace PARR.DAL.Models
public ICollection<ApplicationInHost> ApplicationsInHosts { get; set; } = new HashSet<ApplicationInHost>();
public ICollection<Host> Hosts { get; set; } = new HashSet<Host>();
}
}

View File

@@ -32,5 +32,11 @@ namespace PARR.DAL.Models
[ForeignKey(nameof(ApplicationInWorkId))]
public ApplicationsInWork? ApplicationsInWork { get; set; }
public Guid HostId { get; set; }
[ForeignKey(nameof(HostId))]
public Host? Host { get; set; }
}
}