feat(api): расширен респонс WorkResponse до WorkWithTnkResponse, добавлена полная иерархия тнк. В Work.GetAll добавлен параметр для загрузки с иерархией.
This commit is contained in:
@@ -52,18 +52,31 @@ namespace PARR.API.Controllers.V1
|
||||
/// <param name="paginationQuery"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet(ApiRoutes.Work.GetAll)]
|
||||
public async Task<IActionResult> GetAll([FromQuery] PaginationQuery paginationQuery)
|
||||
public async Task<IActionResult> GetAll([FromQuery] PaginationQuery paginationQuery, [FromQuery] WorkGetAllQuery requestQuery)
|
||||
{
|
||||
var paginationFilter = mapper.Map<PaginationFilter>(paginationQuery);
|
||||
|
||||
IQueryable<Work> query = workService.Get()
|
||||
.OrderBy(t => t.Name);
|
||||
|
||||
if (requestQuery.AllParents)
|
||||
query = query.Include(t => t.Tnk).ThenInclude(s => s.Subprocess).ThenInclude(p => p.Process);
|
||||
|
||||
var works = await workService.GetPage(query, paginationFilter).ToListAsync();
|
||||
|
||||
if (!works.Any())
|
||||
return NoContent();
|
||||
|
||||
if (requestQuery.AllParents)
|
||||
{
|
||||
//todo: тут бесконечность в маппинге
|
||||
// респонс с иерархией вверх до процесса
|
||||
var allResponse = mapper.Map<List<WorkWithTnkResponse>>(works);
|
||||
var paginationAllResponse = new PagedResponse<WorkWithTnkResponse>(allResponse, true).GetPaginatedProps(paginationFilter, query);
|
||||
|
||||
return Ok(paginationAllResponse);
|
||||
}
|
||||
|
||||
var workResponse = mapper.Map<List<WorkResponse>>(works);
|
||||
var paginationResponse = new PagedResponse<WorkResponse>(workResponse, true).GetPaginatedProps(paginationFilter, query);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user