diff --git a/PARR.API/Contracts/V1/ApiRoutes.cs b/PARR.API/Contracts/V1/ApiRoutes.cs
index 7059c593..a5136c9c 100644
--- a/PARR.API/Contracts/V1/ApiRoutes.cs
+++ b/PARR.API/Contracts/V1/ApiRoutes.cs
@@ -211,6 +211,17 @@ namespace PARR.API.Contracts.V1
#endregion
+
+ #region Наряды
+
+ public static class Order
+ {
+ public const string GetAll = Base + "/orders/";
+
+ public const string getParam = "{id}";
+ }
+
+ #endregion
}
}
diff --git a/PARR.API/Contracts/V1/Responses/OrderResponse.cs b/PARR.API/Contracts/V1/Responses/OrderResponse.cs
index ff87ab20..36b0e7e1 100644
--- a/PARR.API/Contracts/V1/Responses/OrderResponse.cs
+++ b/PARR.API/Contracts/V1/Responses/OrderResponse.cs
@@ -15,5 +15,22 @@
public class OrderResponse : OrderResponseBase
{
+ public DateTimeOffset DateCreated { get; set; }
+
+ public string? WorkGroup { get; set; }
+
+ public Guid? TemplateId { get; set; }
+
+ public string TemplateName { get; set; } = string.Empty;
+
+ public OrderStatusResponse? Status { get; set; }
+
+ public OrderStatusResponse? NextStatus { get; set; }
+
+ public string ShortName { get; set; } = string.Empty;
+
+ public DateTimeOffset? GenerateDate { get; set; }
+
+ public DateTimeOffset ExpirationDate { get; set; }
}
}
diff --git a/PARR.API/Controllers/V1/OrderController.cs b/PARR.API/Controllers/V1/OrderController.cs
new file mode 100644
index 00000000..44379e29
--- /dev/null
+++ b/PARR.API/Controllers/V1/OrderController.cs
@@ -0,0 +1,64 @@
+using AutoMapper;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore;
+using PARR.API.Contracts.V1;
+using PARR.API.Contracts.V1.Requests.Queries;
+using PARR.API.Contracts.V1.Responses;
+using PARR.API.Contracts.V1.Responses.Base;
+using PARR.API.Controllers.V1.Base;
+using PARR.API.Extensions;
+using PARR.Constants;
+using PARR.DAL.DomainModels;
+using PARR.DAL.Services.Interfaces;
+
+namespace PARR.API.Controllers.V1
+{
+ ///
+ /// Наряды
+ ///
+ [Authorize(Roles = ParrRoles.Administrator.Role)]
+ public class OrderController : BaseApiController
+ {
+ private readonly IMapper mapper;
+ private readonly IOrderService orderService;
+
+ public OrderController(
+ IMapper mapper,
+ IOrderService orderService
+ )
+ {
+ this.mapper = mapper;
+ this.orderService = orderService;
+ }
+
+
+ ///
+ /// Получить список нарядов постранично
+ ///
+ ///
+ ///
+ [HttpGet(ApiRoutes.Order.GetAll)]
+ public async Task GetAll([FromQuery] PaginationQuery paginationQuery)
+ {
+ var paginationFilter = mapper.Map(paginationQuery);
+
+ var query = orderService.Get()
+ .Include(t=>t.Template)
+ .Include(s=>s.OrderStatus)
+ .Include(s => s.NextStatus)
+ .OrderByDescending(t => t.DateCreated);
+
+ var orders = await orderService.GetPage(query, paginationFilter).ToListAsync();
+
+ if (!orders.Any())
+ return NoContent();
+
+ var orderResponse = mapper.Map>(orders);
+ var paginationResponse = new PagedResponse(orderResponse, true).GetPaginatedProps(paginationFilter, query);
+
+ return Ok(paginationResponse);
+ }
+
+ }
+}
diff --git a/PARR.API/MappingProfiles/DomainToResponseProfile.cs b/PARR.API/MappingProfiles/DomainToResponseProfile.cs
index cbed062b..100393e6 100644
--- a/PARR.API/MappingProfiles/DomainToResponseProfile.cs
+++ b/PARR.API/MappingProfiles/DomainToResponseProfile.cs
@@ -28,7 +28,7 @@ namespace PARR.API.MappingProfiles
.ForMember(d => d.Initiator, o => o.MapFrom())
.ForMember(d => d.ClosingCode, o => o.MapFrom())
.ForMember(d => d.Category, o => o.MapFrom())
- .ForMember(d => d.SyncStatus, o => o.MapFrom(s => s.RobotConfigurations.OrderBy(t=>t.RobotCode)))
+ .ForMember(d => d.SyncStatus, o => o.MapFrom(s => s.RobotConfigurations.OrderBy(t => t.RobotCode)))
.ForMember(d => d.Schedule, o => o.MapFrom())
.ForMember(d => d.Agent, o => o.MapFrom(s => s.ApplicationsInWork))
.ForMember(d => d.NextRun, o => o.MapFrom(s => s.ApplicationsInWork!.NextRun))
@@ -202,7 +202,9 @@ namespace PARR.API.MappingProfiles
.ForMember(s => s.Status, o => o.MapFrom(s => s.OrderStatus))
.ForMember(s => s.NextStatus, o => o.MapFrom(s => s.NextStatus));
- CreateMap();
+ CreateMap()
+ .ForMember(s => s.Status, o => o.MapFrom(s => s.OrderStatus))
+ .ForMember(s => s.NextStatus, o => o.MapFrom(s => s.NextStatus));
#endregion