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
            });
        }