public void Should_return_search_result()
        {
            const string query = "The awesome show";

            _tvMazeService.Search(query).Returns(CreateApiResponse());

            var result = _handler.Handle(new SearchTvShowQuery {
                Query = query
            });

            Assert.NotNull(result.TvShows);
            Assert.True(result.TvShows.Count() == 2);
        }
        public SearchTvShowResult Handle(SearchTvShowQuery query)
        {
            var searchResult    = _tvMazeService.Search(query.Query);
            var subscribedShows = _subscriptionQueryDataSource.GetAllSubscriptionIds().ToList();

            var result = searchResult.Select(show => new TvShow
            {
                Id           = show.Id,
                Name         = show.Name,
                Link         = show.Url,
                StartedYear  = show.Premiered.Year,
                ImageUrl     = GetImageUrl(show.Image),
                IsSubscribed = CheckIfSubscribed(subscribedShows, show.Id)
            });

            return(new SearchTvShowResult
            {
                TvShows = result
            });
        }