feat(api): TemplateController адаптировал метод getAll под новую структуру

This commit is contained in:
Mikhail Trubnikov
2023-10-06 15:13:40 +10:00
parent f2329e9367
commit 7e55659a7c
11 changed files with 2066 additions and 107 deletions

View File

@@ -2,10 +2,10 @@
{ {
public class TemplateQuery public class TemplateQuery
{ {
/// <summary> ///// <summary>
/// Статус шаблона: 10, 20, 30 ///// Статус шаблона: 10, 20, 30
/// </summary> ///// </summary>
public int? StatusCode { get; set; } //public int? StatusCode { get; set; }
/// <summary> /// <summary>
/// Поиск по маске. Например: "*-ДВС" /// Поиск по маске. Например: "*-ДВС"

View File

@@ -4,24 +4,18 @@
{ {
public Guid Id { get; set; } public Guid Id { get; set; }
public required string Name { get; set; } public required string Name { get; set; }
public bool IsActive { get; set; } public bool IsActiveTemplate { get; set; }
public bool IsActiveSchedule { get; set; }
public required string Category { get; set; } public required string Category { get; set; }
public required string Initiator { get; set; } public required string Initiator { get; set; }
public required string ClosingCode { get; set; } public required string ClosingCode { get; set; }
public int StatusCode { get; set; }
public required string ShortDescription { get; set; } public required string ShortDescription { get; set; }
public required string FullDescription { get; set; } public required string FullDescription { get; set; }
public required string Solution { get; set; } public required string Solution { get; set; }
public required string TemplateDuration { get; set; } public required string TemplateDuration { get; set; }
public int RobotAttemptsNumber { get; set; }
public DateTimeOffset? RobotLastStatusUpdated { get; set; }
public RobotStatusResponse? RobotStatus { get; set; }
//work //work
//public required string Title { get; set; } //public required string Title { get; set; }
//public required string SlaInterval { get; set; } //public required string SlaInterval { get; set; }
@@ -48,37 +42,39 @@
//tnk //tnk
//public required string RzdMTNKtnk { get; set; } //public required string RzdMTNKtnk { get; set; }
public TnkResponse? Tnk { get; set; } public TnkResponse? Tnk { get; set; }
public List<RobotConfigurationResponse>? SyncStatus { get; set; }
} }
public class TemplateStringResponse //public class TemplateStringResponse
{ //{
public required string Name { get; set; } // public required string Name { get; set; }
public required string IsActive { get; set; } // public required string IsActive { get; set; }
public required string Assignment { get; set; } // public required string Assignment { get; set; }
public required string Title { get; set; } // public required string Title { get; set; }
public required string Category { get; set; } // public required string Category { get; set; }
public required string Branch { get; set; } // public required string Branch { get; set; }
public required string SlaInterval { get; set; } // public required string SlaInterval { get; set; }
public required string ConfigurationItem { get; set; } // public required string ConfigurationItem { get; set; }
public required string ContactName { get; set; } // public required string ContactName { get; set; }
public required string Description { get; set; } // public required string Description { get; set; }
public required string ResolutionCode { get; set; } // public required string ResolutionCode { get; set; }
public required string Resolution { get; set; } // public required string Resolution { get; set; }
public required string RzdMTNKprocess { get; set; } // public required string RzdMTNKprocess { get; set; }
public required string RzdMTNKprocessId { get; set; } // public required string RzdMTNKprocessId { get; set; }
public required string RzdMTNKsubprocess { get; set; } // public required string RzdMTNKsubprocess { get; set; }
public required string RzdMTNKsubprocessId { get; set; } // public required string RzdMTNKsubprocessId { get; set; }
public required string RzdMTNKtnk { get; set; } // public required string RzdMTNKtnk { get; set; }
public required string RzdMTNKtnkId { get; set; } // public required string RzdMTNKtnkId { get; set; }
public required string RzdMTNKjob { get; set; } // public required string RzdMTNKjob { get; set; }
public required string RzdMTNKjobId { get; set; } // public required string RzdMTNKjobId { get; set; }
public required string Id { get; set; } // public required string Id { get; set; }
public required string StatusCode { get; set; } // public required string StatusCode { get; set; }
} //}
} }

View File

@@ -72,7 +72,7 @@ namespace PARR.API.Controllers.V1
var configToResonse = await robotConfigurationService.Get() var configToResonse = await robotConfigurationService.Get()
.Include(t => t.Robot) .Include(t => t.Robot)
.Include(t => t.StatusTask) .Include(t => t.TaskStatus)
.Include(t => t.RobotStatus) .Include(t => t.RobotStatus)
.FirstOrDefaultAsync(t => t.Id == taskId); .FirstOrDefaultAsync(t => t.Id == taskId);

View File

@@ -44,28 +44,12 @@ namespace PARR.API.Controllers.V1
var paginationFilter = mapper.Map<PaginationFilter>(paginationQuery); var paginationFilter = mapper.Map<PaginationFilter>(paginationQuery);
IQueryable<Template> query = templateService.GetWithIncludes() IQueryable<Template> query = templateService.GetWithIncludes()
.Include(t => t.RobotConfigurations).ThenInclude(t=>t.Robot)
.Include(t => t.RobotConfigurations).ThenInclude(t => t.TaskStatus)
.Include(t => t.RobotConfigurations).ThenInclude(t => t.RobotStatus)
.OrderBy(t => t.Name) .OrderBy(t => t.Name)
.AsSplitQuery(); .AsSplitQuery();
//TODO:!!!
//if (filter.StatusCode.HasValue)
//{
// switch (filter.StatusCode.Value)
// {
// case (int)TaskStatusEnum.Ok:
// query = query.Where(t => t.StatusCode == (int)TaskStatusEnum.Ok);
// break;
// case (int)TaskStatusEnum.Creating:
// query = query.Where(t => t.StatusCode == (int)TaskStatusEnum.Creating);
// break;
// case (int)TaskStatusEnum.Updating:
// query = query.Where(t => t.StatusCode == (int)TaskStatusEnum.Updating);
// break;
// default:
// break;
// }
//}
if (!string.IsNullOrEmpty(filter.Mask)) if (!string.IsNullOrEmpty(filter.Mask))
query = query.Where(t => EF.Functions.Like(t.Name.ToLower(), SqlHelpers.RegexToLike(filter.Mask))); query = query.Where(t => EF.Functions.Like(t.Name.ToLower(), SqlHelpers.RegexToLike(filter.Mask)));

View File

@@ -40,27 +40,8 @@ namespace PARR.API.MappingProfiles
.ForMember(d => d.TemplateDuration, o => o.MapFrom(s => s.ApplicationsInWork!.TemplateDuration)) .ForMember(d => d.TemplateDuration, o => o.MapFrom(s => s.ApplicationsInWork!.TemplateDuration))
.ForMember(d => d.Initiator, o => o.MapFrom<TemplateInitiatorResolver>()) .ForMember(d => d.Initiator, o => o.MapFrom<TemplateInitiatorResolver>())
.ForMember(d => d.ClosingCode, o => o.MapFrom<TemplateClosingCodeResolver>()) .ForMember(d => d.ClosingCode, o => o.MapFrom<TemplateClosingCodeResolver>())
.ForMember(d => d.Category, o => o.MapFrom<TemplateCategoryResolver>()); .ForMember(d => d.Category, o => o.MapFrom<TemplateCategoryResolver>())
.ForMember(d => d.SyncStatus, o => o.MapFrom(s => s.RobotConfigurations));
CreateMap<TemplateResponse, TemplateStringResponse>()
.ForMember(d => d.Assignment, o => o.MapFrom(s => s.Host!.WorkGroup))
.ForMember(d => d.Title, o => o.MapFrom(s => s.ShortDescription))
.ForMember(d => d.Branch, o => o.MapFrom(s => s.Host!.ResponseArea))
.ForMember(d => d.SlaInterval, o => o.MapFrom(s => s.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.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!.Name))
.ForMember(d => d.RzdMTNKprocessId, o => o.MapFrom(s => s.Process!.EsppId))
.ForMember(d => d.RzdMTNKsubprocess, o => o.MapFrom(s => s.Subprocess!.Name))
.ForMember(d => d.RzdMTNKsubprocessId, o => o.MapFrom(s => s.Subprocess!.EsppId))
.ForMember(d => d.RzdMTNKtnk, o => o.MapFrom(s => s.Tnk!.Name))
.ForMember(d => d.RzdMTNKtnkId, o => o.MapFrom(s => s.Tnk!.EsppId))
.ForMember(d => d.RzdMTNKjob, o => o.MapFrom(s => s.Work!.Name))
.ForMember(d => d.RzdMTNKjobId, o => o.MapFrom(s => s.Work!.EsppId));
// === Template === // === Template ===
CreateMap<DAL.Models.TaskStatus, TaskStatusResponse>(); CreateMap<DAL.Models.TaskStatus, TaskStatusResponse>();
@@ -123,7 +104,7 @@ namespace PARR.API.MappingProfiles
CreateMap<RobotConfiguration, RobotConfigurationResponse>() CreateMap<RobotConfiguration, RobotConfigurationResponse>()
.ForMember(d => d.Robot, o => o.MapFrom(s => s.Robot)) .ForMember(d => d.Robot, o => o.MapFrom(s => s.Robot))
.ForMember(d => d.TaskStatus, o => o.MapFrom(s => s.StatusTask)) .ForMember(d => d.TaskStatus, o => o.MapFrom(s => s.TaskStatus))
.ForMember(d => d.RobotStatus, o => o.MapFrom(s => s.RobotStatus)); .ForMember(d => d.RobotStatus, o => o.MapFrom(s => s.RobotStatus));

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,78 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace PARR.DAL.Migrations
{
/// <inheritdoc />
public partial class TblTemplatesUpd2 : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Templates_RobotStatuses_RobotStatusCode",
table: "Templates");
migrationBuilder.DropForeignKey(
name: "FK_Templates_TaskStatuses_TaskStatusCode",
table: "Templates");
migrationBuilder.DropIndex(
name: "IX_Templates_RobotStatusCode",
table: "Templates");
migrationBuilder.DropIndex(
name: "IX_Templates_TaskStatusCode",
table: "Templates");
migrationBuilder.DropColumn(
name: "RobotStatusCode",
table: "Templates");
migrationBuilder.DropColumn(
name: "TaskStatusCode",
table: "Templates");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "RobotStatusCode",
table: "Templates",
type: "integer",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "TaskStatusCode",
table: "Templates",
type: "integer",
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_Templates_RobotStatusCode",
table: "Templates",
column: "RobotStatusCode");
migrationBuilder.CreateIndex(
name: "IX_Templates_TaskStatusCode",
table: "Templates",
column: "TaskStatusCode");
migrationBuilder.AddForeignKey(
name: "FK_Templates_RobotStatuses_RobotStatusCode",
table: "Templates",
column: "RobotStatusCode",
principalTable: "RobotStatuses",
principalColumn: "Code");
migrationBuilder.AddForeignKey(
name: "FK_Templates_TaskStatuses_TaskStatusCode",
table: "Templates",
column: "TaskStatusCode",
principalTable: "TaskStatuses",
principalColumn: "Code");
}
}
}

View File

@@ -1100,12 +1100,6 @@ namespace PARR.DAL.Migrations
.IsRequired() .IsRequired()
.HasColumnType("text"); .HasColumnType("text");
b.Property<int?>("RobotStatusCode")
.HasColumnType("integer");
b.Property<int?>("TaskStatusCode")
.HasColumnType("integer");
b.HasKey("Id"); b.HasKey("Id");
b.HasIndex("ApplicationInWorkId"); b.HasIndex("ApplicationInWorkId");
@@ -1115,10 +1109,6 @@ namespace PARR.DAL.Migrations
b.HasIndex("Name") b.HasIndex("Name")
.IsUnique(); .IsUnique();
b.HasIndex("RobotStatusCode");
b.HasIndex("TaskStatusCode");
b.ToTable("Templates"); b.ToTable("Templates");
}); });
@@ -1604,13 +1594,13 @@ namespace PARR.DAL.Migrations
.IsRequired(); .IsRequired();
b.HasOne("PARR.DAL.Models.RobotStatus", "RobotStatus") b.HasOne("PARR.DAL.Models.RobotStatus", "RobotStatus")
.WithMany() .WithMany("RobotConfigurations")
.HasForeignKey("RobotStatusCode") .HasForeignKey("RobotStatusCode")
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
b.HasOne("PARR.DAL.Models.TaskStatus", "StatusTask") b.HasOne("PARR.DAL.Models.TaskStatus", "TaskStatus")
.WithMany() .WithMany("RobotConfigurations")
.HasForeignKey("TaskStatusCode") .HasForeignKey("TaskStatusCode")
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
@@ -1625,7 +1615,7 @@ namespace PARR.DAL.Migrations
b.Navigation("RobotStatus"); b.Navigation("RobotStatus");
b.Navigation("StatusTask"); b.Navigation("TaskStatus");
b.Navigation("Template"); b.Navigation("Template");
}); });
@@ -1645,7 +1635,7 @@ namespace PARR.DAL.Migrations
.IsRequired(); .IsRequired();
b.HasOne("PARR.DAL.Models.TaskStatus", "StatusTask") b.HasOne("PARR.DAL.Models.TaskStatus", "StatusTask")
.WithMany() .WithMany("RobotHistories")
.HasForeignKey("TaskStatusCode") .HasForeignKey("TaskStatusCode")
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
@@ -1682,14 +1672,6 @@ namespace PARR.DAL.Migrations
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
b.HasOne("PARR.DAL.Models.RobotStatus", null)
.WithMany("Templates")
.HasForeignKey("RobotStatusCode");
b.HasOne("PARR.DAL.Models.TaskStatus", null)
.WithMany("Templates")
.HasForeignKey("TaskStatusCode");
b.Navigation("ApplicationsInWork"); b.Navigation("ApplicationsInWork");
b.Navigation("Host"); b.Navigation("Host");
@@ -1872,7 +1854,7 @@ namespace PARR.DAL.Migrations
modelBuilder.Entity("PARR.DAL.Models.RobotStatus", b => modelBuilder.Entity("PARR.DAL.Models.RobotStatus", b =>
{ {
b.Navigation("Templates"); b.Navigation("RobotConfigurations");
}); });
modelBuilder.Entity("PARR.DAL.Models.Subprocess", b => modelBuilder.Entity("PARR.DAL.Models.Subprocess", b =>
@@ -1882,7 +1864,9 @@ namespace PARR.DAL.Migrations
modelBuilder.Entity("PARR.DAL.Models.TaskStatus", b => modelBuilder.Entity("PARR.DAL.Models.TaskStatus", b =>
{ {
b.Navigation("Templates"); b.Navigation("RobotConfigurations");
b.Navigation("RobotHistories");
}); });
modelBuilder.Entity("PARR.DAL.Models.Template", b => modelBuilder.Entity("PARR.DAL.Models.Template", b =>

View File

@@ -51,7 +51,7 @@ namespace PARR.DAL.Models
public Robot? Robot { get; set; } public Robot? Robot { get; set; }
[ForeignKey(nameof(TaskStatusCode))] [ForeignKey(nameof(TaskStatusCode))]
public TaskStatus? StatusTask { get; set; } public TaskStatus? TaskStatus { get; set; }
[ForeignKey(nameof(RobotStatusCode))] [ForeignKey(nameof(RobotStatusCode))]
public RobotStatus? RobotStatus { get; set; } public RobotStatus? RobotStatus { get; set; }

View File

@@ -18,6 +18,6 @@ namespace PARR.DAL.Models
[Required] [Required]
public string Description { get; set; } = string.Empty; public string Description { get; set; } = string.Empty;
public ICollection<Template> Templates { get; set; } = new HashSet<Template>(); public ICollection<RobotConfiguration> RobotConfigurations { get; set; } = new HashSet<RobotConfiguration>();
} }
} }

View File

@@ -18,6 +18,8 @@ namespace PARR.DAL.Models
[Required] [Required]
public string Description { get; set; } = string.Empty; public string Description { get; set; } = string.Empty;
public ICollection<Template> Templates { get; set; } = new HashSet<Template>(); public ICollection<RobotConfiguration> RobotConfigurations { get; set; } = new HashSet<RobotConfiguration>();
public ICollection<RobotHistory> RobotHistories { get; set; } = new HashSet<RobotHistory>();
} }
} }