public async Task <TVShowSearchResultsOuterDto> FetchShowSearchResults(string searchTerms, string token) { Log.Information("Finding search results for {searchTerms}", searchTerms); TVShowSearchResultsOuterDto searchResultsOuter = new TVShowSearchResultsOuterDto(); HttpClient client = CreateDefaultClient(token); try { var response = await client.GetAsync(GetSearchUri(searchTerms)); if (response.StatusCode != System.Net.HttpStatusCode.NotFound) { response.EnsureSuccessStatusCode(); var stringResponse = await response.Content.ReadAsStringAsync(); JsonConverter converter = new JsonConverter(); searchResultsOuter = converter.ConvertTVShowSearchResultsToDto(stringResponse); Log.Information("Successfully fetched search results for term {searchTerms}", searchTerms); } else { Log.Information("No shows found for search term {searchTerms}", searchTerms); } } catch (Exception e) { Log.Error(e, "Error fetching search results"); } return(searchResultsOuter); }
public async Task <List <TVShowFromTVDBDto> > SearchForTVShows(string searchTerms) { TVShowSearchResultsOuterDto searchResultsOuter = await _retrieverService.FetchShowSearchResults(searchTerms, _tvdbInfo.Token); if (searchResultsOuter.shows != null) { return(searchResultsOuter.shows.ToList()); } else { return(null); } }
public void ConvertTVShowSearchResultsToDto_Valid_ReturnsOuterObject() { string pathToJson = @"..\..\..\..\Renamer.Data\SampleData\SiliconValleySearchResults.json"; string json = File.ReadAllText(pathToJson); JsonConverter converter = new JsonConverter(); string expectedShowName = "Silicon Valley"; long expectedSeriesId = 277165; TVShowSearchResultsOuterDto outerObject = converter.ConvertTVShowSearchResultsToDto(json); Assert.Equal(expectedShowName, outerObject.shows[0].SeriesNameTVDB); Assert.Equal(expectedSeriesId, outerObject.shows[0].SeriesId); }
public TVShowSearchResultsOuterDto ConvertTVShowSearchResultsToDto(string showsJson) { TVShowSearchResultsOuterDto outerData = JsonConvert.DeserializeObject <TVShowSearchResultsOuterDto>(showsJson); return(outerData); }