feat(api): applicationInWorks getAll, фильтр по workId, is_light=true - облегченный запрос без include
This commit is contained in:
@@ -6,5 +6,15 @@
|
|||||||
/// Поиск по краткому описанию
|
/// Поиск по краткому описанию
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? ShortDescription { get; set; }
|
public string? ShortDescription { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Фильтр по ИД работы
|
||||||
|
/// </summary>
|
||||||
|
public Guid? WorkId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Облегченный запрос
|
||||||
|
/// </summary>
|
||||||
|
public bool? IsLight { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,15 +52,23 @@ namespace PARR.API.Controllers.V1
|
|||||||
{
|
{
|
||||||
var paginationFilter = mapper.Map<PaginationFilter>(paginationQuery);
|
var paginationFilter = mapper.Map<PaginationFilter>(paginationQuery);
|
||||||
|
|
||||||
IQueryable<ApplicationsInWork> query = applicationsInWorkService.Get()
|
IQueryable<ApplicationsInWork> query = applicationsInWorkService.Get();
|
||||||
.Include(t => t.Application).ThenInclude(t => t!.ApplicationType)
|
|
||||||
|
if (filter.IsLight != true)
|
||||||
|
{
|
||||||
|
query = query.Include(t => t.Application).ThenInclude(t => t!.ApplicationType)
|
||||||
.Include(t => t.Work)
|
.Include(t => t.Work)
|
||||||
.Include(t => t.Templates)
|
.Include(t => t.Templates);
|
||||||
.OrderBy(t => t.ShortDescription);
|
}
|
||||||
|
|
||||||
|
query = query.OrderBy(t => t.ShortDescription);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(filter.ShortDescription))
|
if (!string.IsNullOrEmpty(filter.ShortDescription))
|
||||||
query = query.Where(t => t.ShortDescription.ToLower().Contains(filter.ShortDescription.ToLower()));
|
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();
|
var appInWorks = await applicationsInWorkService.GetPage(query, paginationFilter).ToListAsync();
|
||||||
|
|
||||||
if (!appInWorks.Any())
|
if (!appInWorks.Any())
|
||||||
|
|||||||
Reference in New Issue
Block a user