public async Task <PagedResponse <FoundLibraryDTO> > Handle(SearchLibraryQuery request, CancellationToken cancellationToken) { LibrarySearchCondition searchCondition = new LibrarySearchCondition() { Name = GetFilterValues(request.SearchCondition.Name), Address = GetFilterValues(request.SearchCondition.Address), Telephone = GetFilterValues(request.SearchCondition.Telephone), Page = request.SearchCondition.Page, PageSize = request.SearchCondition.PageSize, SortDirection = request.SearchCondition.SortDirection, SortProperty = request.SearchCondition.SortProperty }; var sortProperty = GetSortProperty(searchCondition.SortProperty); IReadOnlyCollection <Library> foundLibrary = await libraryService.FindAsync(searchCondition, sortProperty); FoundLibraryDTO[] mappedLibrary = foundLibrary.Select(MapToFoundLibraryDTO).ToArray(); var totalCount = await libraryService.CountAsync(searchCondition); return(new PagedResponse <FoundLibraryDTO> { Items = mappedLibrary, TotalCount = totalCount }); }