From d241071959669910eb563facdcc89f1cc9610bac Mon Sep 17 00:00:00 2001 From: Mikhail Trubnikov Date: Mon, 22 Jan 2024 11:46:49 +1000 Subject: [PATCH] =?UTF-8?q?feat(api):=20=D0=B2=20=D1=80=D0=B5=D1=81=D0=BF?= =?UTF-8?q?=D0=BE=D0=BD=D1=81=20=D0=B8=D1=81=D1=82=D0=BE=D1=80=D0=B8=D0=B8?= =?UTF-8?q?=20=D0=B0=D0=B3=D0=B5=D0=BD=D1=82=D0=B0=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=B8=D0=BD=D1=84=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BE=20=D0=BD=D0=B0?= =?UTF-8?q?=D1=80=D1=8F=D0=B4=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../V1/Responses/AgentHistoryResponse.cs | 4 ++++ .../Contracts/V1/Responses/OrderResponse.cs | 19 +++++++++++++++++++ .../Controllers/V1/AgentHistoryController.cs | 13 +++++++++++-- .../DomainToResponseProfile.cs | 10 ++++++++++ 4 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 PARR.API/Contracts/V1/Responses/OrderResponse.cs 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 }