diff --git a/PARR.API/Contracts/V1/Responses/AgentHistoryResponse.cs b/PARR.API/Contracts/V1/Responses/AgentHistoryResponse.cs index e040eea0..72f07d3c 100644 --- a/PARR.API/Contracts/V1/Responses/AgentHistoryResponse.cs +++ b/PARR.API/Contracts/V1/Responses/AgentHistoryResponse.cs @@ -13,5 +13,9 @@ public string? TemplateName { get; set; } public AgentHistoryLevelResponse? Level { get; set; } + + public OrderForAgentHistoryResponse? Order { get; set; } } + + } diff --git a/PARR.API/Contracts/V1/Responses/OrderResponse.cs b/PARR.API/Contracts/V1/Responses/OrderResponse.cs new file mode 100644 index 00000000..ff87ab20 --- /dev/null +++ b/PARR.API/Contracts/V1/Responses/OrderResponse.cs @@ -0,0 +1,19 @@ +namespace PARR.API.Contracts.V1.Responses +{ + public class OrderResponseBase + { + public Guid Id { get; set; } + public string Number { get; set; } = string.Empty; + + } + + public class OrderForAgentHistoryResponse : OrderResponseBase + { + public OrderStatusResponse? Status { get; set; } + public OrderStatusResponse? NextStatus { get; set; } + } + + public class OrderResponse : OrderResponseBase + { + } +} diff --git a/PARR.API/Controllers/V1/AgentHistoryController.cs b/PARR.API/Controllers/V1/AgentHistoryController.cs index 4bfeb0e4..72cc6b2f 100644 --- a/PARR.API/Controllers/V1/AgentHistoryController.cs +++ b/PARR.API/Controllers/V1/AgentHistoryController.cs @@ -63,7 +63,9 @@ namespace PARR.API.Controllers.V1 IQueryable query = agentHistoryService.Get() .Include(t => t.AgentHistoryLevel) - .Include(t => t.Template); + .Include(t => t.Template) + .Include(t => t.Order).ThenInclude(s => s.OrderStatus) + .Include(t => t.Order).ThenInclude(s => s.NextStatus); if (request.TemplateId.HasValue) query = query.Where(t => t.TemplateId == request.TemplateId); @@ -92,6 +94,8 @@ namespace PARR.API.Controllers.V1 var history = await agentHistoryService.Get() .Include(t => t.AgentHistoryLevel) .Include(t => t.Template) + .Include(t => t.Order).ThenInclude(s => s.OrderStatus) + .Include(t => t.Order).ThenInclude(s => s.NextStatus) .FirstOrDefaultAsync(t => t.Id == id); if (history == null) @@ -141,7 +145,12 @@ namespace PARR.API.Controllers.V1 if (!await agentHistoryService.CreateAsync(agentJournal) || !await agentHistoryService.CommitAsync()) return BadRequest(new Response(false, new List { new ErrorModel { Message = "Ошибка при добавлении записи в историю работы агента." } })); - var createdObject = await agentHistoryService.Get().Include(t => t.AgentHistoryLevel).Include(t => t.Template).FirstAsync(t => t.Id == agentJournal.Id); + var createdObject = await agentHistoryService.Get() + .Include(t => t.AgentHistoryLevel) + .Include(t => t.Template) + .Include(t => t.Order).ThenInclude(s => s.OrderStatus) + .Include(t => t.Order).ThenInclude(s => s.NextStatus) + .FirstAsync(t => t.Id == agentJournal.Id); var response = mapper.Map(createdObject); var createdUri = uriService.GetUri(ApiRoutes.AgentHistory.Get, ApiRoutes.AgentHistory.getParam, agentJournal.Id); diff --git a/PARR.API/MappingProfiles/DomainToResponseProfile.cs b/PARR.API/MappingProfiles/DomainToResponseProfile.cs index be0b9300..f170e8c6 100644 --- a/PARR.API/MappingProfiles/DomainToResponseProfile.cs +++ b/PARR.API/MappingProfiles/DomainToResponseProfile.cs @@ -190,6 +190,16 @@ namespace PARR.API.MappingProfiles CreateMap(); + CreateMap() + .Include() + .Include(); + + CreateMap() + .ForMember(s => s.Status, o => o.MapFrom(s => s.OrderStatus)) + .ForMember(s => s.NextStatus, o => o.MapFrom(s => s.NextStatus)); + + CreateMap(); + #endregion }