public PagedResponse <IssuanceDto> Execute(IssuanceSearch search) { var query = _context.Issuances .Include(x => x.Book) .ThenInclude(x => x.Title) .Include(x => x.Member) .Include(x => x.LibrarianRented) .Include(x => x.LibrarianReturned) .AsQueryable(); if (search.RentedDateFrom.HasValue) { query = query.Where(x => x.RentedDate.Date >= search.RentedDateFrom.Value.Date); } if (search.RentedDateTo.HasValue) { query = query.Where(x => x.RentedDate.Date <= search.RentedDateTo.Value.Date); } if (search.Status.HasValue) { query = query.Where(x => x.Status == search.Status.Value); } if (search.ExistRecompense.HasValue) { query = query.Where(x => x.ExistRecompense == search.ExistRecompense.Value); } if (search.TitleIds.Count > 0) { query = query.Where(x => search.TitleIds.Contains(x.Book.TitleId)); } if (search.MemberIds.Count > 0) { query = query.Where(x => search.MemberIds.Contains(x.MemberId)); } if (search.LibrarianRentedIds.Count > 0) { query = query.Where(x => search.LibrarianRentedIds.Contains(x.LibrarianRentedId)); } if (search.LibrarianReturnedIds.Count > 0) { query = query.Where(x => search.LibrarianReturnedIds.Contains(x.LibrarianReturnedId.Value)); } return(query.Paged <IssuanceDto, Domain.Issuance>(search, _mapper)); }
public IActionResult Get([FromQuery] IssuanceSearch search, [FromServices] IGetIssuances query) { return(Ok(_executor.ExecuteQuery(query, search))); }