From d139374f5fdd3e796599a26b80caf5bb154b38dc Mon Sep 17 00:00:00 2001 From: Mikhail Trubnikov Date: Tue, 21 May 2024 13:56:13 +1000 Subject: [PATCH] =?UTF-8?q?feat(api):=20applicationInWorks=20getAll,=20?= =?UTF-8?q?=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80=20=D0=BF=D0=BE=20workId,?= =?UTF-8?q?=20is=5Flight=3Dtrue=20-=20=D0=BE=D0=B1=D0=BB=D0=B5=D0=B3=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=BD=D1=8B=D0=B9=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D1=81=20=D0=B1=D0=B5=D0=B7=20include?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Requests/Queries/ApplicationInWorkQuery.cs | 10 ++++++++++ .../V1/ApplicationInWorkController.cs | 16 ++++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) 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())