feat(api): в ApplicationInWork добавлена информация о статусах AutoControl

This commit is contained in:
Mikhail Trubnikov
2024-09-11 14:59:37 +10:00
parent a8416564c2
commit 295a95c22a
4 changed files with 21 additions and 14 deletions

View File

@@ -47,6 +47,8 @@
public ApplicationInWorkScheduleResponse? Schedule { get; set; }
public List<WorkGroupResponse>? WorkGroups { get; set; }
public JobAutoControlBaseResponse? AutoControl { get; set; }
}

View File

@@ -1,11 +1,7 @@
namespace PARR.API.Contracts.V1.Responses
{
public class JobAutoControlResponse
public class JobAutoControlBaseResponse
{
public Guid Id { get; set; }
public Guid ApplicationInWorkId { get; set; }
/// <summary>
/// Создавать новые РР (из настроке РР)
/// </summary>
@@ -20,6 +16,13 @@
/// Активировать РР после смены ЭК (согласно настройкам статусов ЭК)
/// </summary>
public bool Activate { get; set; }
}
public class JobAutoControlResponse : JobAutoControlBaseResponse
{
public Guid Id { get; set; }
public Guid ApplicationInWorkId { get; set; }
/// <summary>
/// Состояние для активированных РР, шаблоны
@@ -49,12 +52,7 @@
/// <summary>
/// Статусы ЭК для которых включена генерация РР и активация
/// </summary>
public List<EkStatusResponse>? EnabledEkStatuses{ get; set; }
/// <summary>
/// Краткое описание
/// </summary>
public required string ShortDescription { get; set; }
public List<EkStatusResponse>? EnabledEkStatuses { get; set; }
/// <summary>
/// Рабочие группы

View File

@@ -74,7 +74,8 @@ namespace PARR.API.Controllers.V1
query = query
.Include(t => t.Work)
//.Include(t => t.Templates) - большой запрос, делаем его отдельно
.Include(t => t.WorkGroups).ThenInclude(t => t.WorkGroup);
.Include(t => t.WorkGroups).ThenInclude(t => t.WorkGroup)
.Include(t => t.JobAutoControl);
}
query = query.OrderBy(t => t.ShortDescription).ThenBy(t => t.Application!.Name);
@@ -123,6 +124,7 @@ namespace PARR.API.Controllers.V1
.Include(t => t.Work)
//.Include(t => t.Templates)
.Include(t => t.WorkGroups).ThenInclude(t => t.WorkGroup)
.Include(t => t.JobAutoControl)
.FirstOrDefaultAsync(t => t.Id == id);
if (applicationInWork == null)
@@ -206,6 +208,7 @@ namespace PARR.API.Controllers.V1
.Include(t => t.Work)
//.Include(t => t.Templates)
.Include(t => t.WorkGroups).ThenInclude(t => t.WorkGroup)
.Include(t => t.JobAutoControl)
.FirstAsync(t => t.Id == applicationInWork.Id);
var locationUri = uriService.GetUri(ApiRoutes.Job.Get, ApiRoutes.Job.getParam, createdApplicationInWork.Id);
@@ -320,6 +323,7 @@ namespace PARR.API.Controllers.V1
.Include(t => t.Work)
//.Include(t => t.Templates)
.Include(t => t.WorkGroups).ThenInclude(t => t.WorkGroup)
.Include(t => t.JobAutoControl)
.FirstAsync(t => t.Id == orig.Id);
var response = mapper.Map<ApplicationInWorkResponse>(updatedApplicationInWork);

View File

@@ -271,16 +271,19 @@ namespace PARR.API.MappingProfiles
.ForMember(d => d.Work, o => o.MapFrom(s => s.Work))
.ForMember(d => d.TemplatesCount, o => o.MapFrom(s => s.Templates.Count()))
.ForMember(d => d.Schedule, o => o.MapFrom<ApplicationInWorkScheduleResolver>())
.ForMember(d => d.WorkGroups, o => o.MapFrom(s => s.WorkGroups.OrderBy(t => t.WorkGroup.Name).Select(t => t.WorkGroup)));
.ForMember(d => d.WorkGroups, o => o.MapFrom(s => s.WorkGroups.OrderBy(t => t.WorkGroup.Name).Select(t => t.WorkGroup)))
.ForMember(d => d.AutoControl, o => o.MapFrom(s => s.JobAutoControl));
#endregion
#region JobAutoControl
CreateMap<JobAutoControl, JobAutoControlBaseResponse>()
.Include<JobAutoControl, JobAutoControlResponse>();
CreateMap<JobAutoControl, JobAutoControlResponse>()
.ForMember(d => d.EkMasks, o => o.MapFrom(s => s.JobEkMasks.OrderBy(t => t.Name)))
.ForMember(d => d.EnabledEkStatuses, o => o.MapFrom(s => s.JobAutoControlInEkStatuses.Select(t => t.EkStatus).OrderBy(t => t.Name)))
.ForMember(d => d.ShortDescription, o => o.MapFrom(s => s.ApplicationsInWork.ShortDescription))
.ForMember(d => d.WorkGroups, o => o.MapFrom(s => s.ApplicationsInWork.WorkGroups.Select(t => t.WorkGroup).OrderBy(t => t.Name)));