public static void Populate(this TVDB_Series_Search_Response response, XmlNode series) { response.Id = string.Empty; response.SeriesID = 0; response.Overview = string.Empty; response.SeriesName = string.Empty; response.Banner = string.Empty; if (series["seriesid"] != null) { response.SeriesID = int.Parse(series["seriesid"].InnerText); } if (series["SeriesName"] != null) { response.SeriesName = series["SeriesName"].InnerText; } if (series["id"] != null) { response.Id = series["id"].InnerText; } if (series["Overview"] != null) { response.Overview = series["Overview"].InnerText; } if (series["banner"] != null) { response.Banner = series["banner"].InnerText; } if (series["language"] != null) { response.Language = series["language"].InnerText; } }
public static void Populate(this TVDB_Series_Search_Response response, TvDbSharper.Clients.Search.Json.SeriesSearchResult series) { response.Id = String.Empty; response.SeriesID = series.Id; response.SeriesName = series.SeriesName; response.Overview = series.Overview; response.Banner = series.Banner; }
public static void Populate(this TVDB_Series_Search_Response response, TvDbSharper.Dto.SeriesSearchResult series) { response.Id = string.Empty; response.SeriesID = series.Id; response.SeriesName = series.SeriesName; response.Overview = series.Overview; response.Banner = series.Banner; response.Language = string.Intern("en"); }
public static async Task <List <TVDB_Series_Search_Response> > SearchSeriesAsync(string criteria) { List <TVDB_Series_Search_Response> results = new List <TVDB_Series_Search_Response>(); try { await CheckAuthorizationAsync(); // Search for a series logger.Trace($"Search TvDB Series: {criteria}"); TvDBRateLimiter.Instance.EnsureRate(); var response = await client.Search.SearchSeriesByNameAsync(criteria); SeriesSearchResult[] series = response?.Data; if (series == null) { return(results); } foreach (SeriesSearchResult item in series) { TVDB_Series_Search_Response searchResult = new TVDB_Series_Search_Response(); searchResult.Populate(item); results.Add(searchResult); } } catch (TvDbServerException exception) { if (exception.StatusCode == (int)HttpStatusCode.Unauthorized) { client.Authentication.Token = null; await CheckAuthorizationAsync(); if (!string.IsNullOrEmpty(client.Authentication.Token)) { return(await SearchSeriesAsync(criteria)); } // suppress 404 and move on } else if (exception.StatusCode == (int)HttpStatusCode.NotFound) { return(results); } logger.Error(exception, $"TvDB returned an error code: {exception.StatusCode}\n {exception.Message}\n when searching for {criteria}"); Analytics.PostException(exception); } catch (Exception ex) { logger.Error(ex, $"Error in SearchSeries: {ex}"); Analytics.PostException(ex); } return(results); }
public static async Task <List <TVDB_Series_Search_Response> > SearchSeriesAsync(string criteria) { List <TVDB_Series_Search_Response> results = new List <TVDB_Series_Search_Response>(); try { await _checkAuthorizationAsync(); // Search for a series logger.Trace("Search TvDB Series: {0}", criteria); TvDBRateLimiter.Instance.EnsureRate(); var response = await client.Search.SearchSeriesByNameAsync(criteria); TvDbSharper.Clients.Search.Json.SeriesSearchResult[] series = response.Data; foreach (TvDbSharper.Clients.Search.Json.SeriesSearchResult item in series) { TVDB_Series_Search_Response searchResult = new TVDB_Series_Search_Response(); searchResult.Populate(item); results.Add(searchResult); } } catch (TvDbSharper.Errors.TvDbServerException exception) { if (exception.StatusCode == HttpStatusCode.Unauthorized) { client.Authentication.Token = null; await _checkAuthorizationAsync(); if (client.Authentication.Token != null) { return(await SearchSeriesAsync(criteria)); } // suppress 404 and move on } else if (exception.StatusCode == HttpStatusCode.NotFound) { return(results); } logger.Error(exception, "TvDB returned an error code: " + exception.StatusCode + "\n " + exception.Message + "\n when searching for " + criteria); } catch (Exception ex) { logger.Error(ex, "Error in SearchSeries: " + ex.ToString()); } return(results); }