public async Task <TelevisionShowCardResultsViewModel> Handle(
            QuerySearchIndexShows request,
            CancellationToken cancellationToken)
        {
            SearchResult searchResult = await _searchIndex.Search(
                request.Query,
                (request.PageNumber - 1) *request.PageSize,
                request.PageSize);

            List <TelevisionShowCardViewModel> items = await _televisionRepository
                                                       .GetShowsForCards(searchResult.Items.Map(i => i.Id).ToList())
                                                       .Map(list => list.Map(ProjectToViewModel).ToList());

            return(new TelevisionShowCardResultsViewModel(searchResult.TotalCount, items, searchResult.PageMap));
        }
    public async Task <TelevisionShowCardResultsViewModel> Handle(
        QuerySearchIndexShows request,
        CancellationToken cancellationToken)
    {
        SearchResult searchResult = await _searchIndex.Search(
            request.Query,
            (request.PageNumber - 1) *request.PageSize,
            request.PageSize);

        Option <JellyfinMediaSource> maybeJellyfin = await _mediaSourceRepository.GetAllJellyfin()
                                                     .Map(list => list.HeadOrNone());

        Option <EmbyMediaSource> maybeEmby = await _mediaSourceRepository.GetAllEmby()
                                             .Map(list => list.HeadOrNone());

        List <TelevisionShowCardViewModel> items = await _televisionRepository
                                                   .GetShowsForCards(searchResult.Items.Map(i => i.Id).ToList())
                                                   .Map(list => list.Map(s => ProjectToViewModel(s, maybeJellyfin, maybeEmby)).ToList());

        return(new TelevisionShowCardResultsViewModel(searchResult.TotalCount, items, searchResult.PageMap));
    }