diff --git a/PARR.API/Contracts/V1/Requests/Queries/ApplicationInWorkQuery.cs b/PARR.API/Contracts/V1/Requests/Queries/ApplicationInWorkQuery.cs
index f10afccb..015e6612 100644
--- a/PARR.API/Contracts/V1/Requests/Queries/ApplicationInWorkQuery.cs
+++ b/PARR.API/Contracts/V1/Requests/Queries/ApplicationInWorkQuery.cs
@@ -6,5 +6,15 @@
/// Поиск по краткому описанию
///
public string? ShortDescription { get; set; }
+
+ ///
+ /// Фильтр по ИД работы
+ ///
+ public Guid? WorkId { get; set; }
+
+ ///
+ /// Облегченный запрос
+ ///
+ public bool? IsLight { get; set; }
}
}
diff --git a/PARR.API/Controllers/V1/ApplicationInWorkController.cs b/PARR.API/Controllers/V1/ApplicationInWorkController.cs
index aaa0735c..20cd494e 100644
--- a/PARR.API/Controllers/V1/ApplicationInWorkController.cs
+++ b/PARR.API/Controllers/V1/ApplicationInWorkController.cs
@@ -52,15 +52,23 @@ namespace PARR.API.Controllers.V1
{
var paginationFilter = mapper.Map(paginationQuery);
- IQueryable query = applicationsInWorkService.Get()
- .Include(t => t.Application).ThenInclude(t => t!.ApplicationType)
+ IQueryable query = applicationsInWorkService.Get();
+
+ if (filter.IsLight != true)
+ {
+ query = query.Include(t => t.Application).ThenInclude(t => t!.ApplicationType)
.Include(t => t.Work)
- .Include(t => t.Templates)
- .OrderBy(t => t.ShortDescription);
+ .Include(t => t.Templates);
+ }
+
+ query = query.OrderBy(t => t.ShortDescription);
if (!string.IsNullOrEmpty(filter.ShortDescription))
query = query.Where(t => t.ShortDescription.ToLower().Contains(filter.ShortDescription.ToLower()));
+ if (filter.WorkId.HasValue)
+ query = query.Where(t => t.WorkId == filter.WorkId.Value);
+
var appInWorks = await applicationsInWorkService.GetPage(query, paginationFilter).ToListAsync();
if (!appInWorks.Any())