예제 #1
0
        public async Task <IActionResult> GetSolutionsWithPage([FromQuery] SolutionParameters solutionParameters)
        {
            var find = await _context.Solutions.Include(c => c.Files)
                       .Where(s =>
                              (EF.Functions.Like(s.Id.ToString(), $"%{solutionParameters.Text}%") ||
                               EF.Functions.Like(s.Description, $"%{solutionParameters.Text}%")
                              ) &&
                              EF.Functions.Like(s.LaboratoryWorkId.ToString(), $"%{solutionParameters.LaboratoryWorkId}%") &&
                              EF.Functions.Like(s.OwnerId.ToString(), $"%{solutionParameters.OwnerId}%")
                              ).ToListAsync();

            solutionParameters.TotalCount = find.Count;
            if (!solutionParameters.Check())
            {
                return(NoContent());
            }
            Response.Headers.Add("X-Pagination", solutionParameters.PaginationToJson());
            List <SolutionDTO> dtos = new List <SolutionDTO>();

            foreach (var item in find)
            {
                dtos.Add(item.ToSolutionDto());
            }
            return(Ok(dtos));
        }