private void LoadXml([NotNull] XElement seriesXml) { //<Data> // <Series> // <id>...</id> // etc. // </Series> // <Episode> // <id>...</id> // blah blah // </Episode> // <Episode> // <id>...</id> // blah blah // </Episode> // ... //</Data> try { TvdbCode = seriesXml.ExtractInt("id") ?? throw new SourceConsistencyException("Error Extracting Id for Series", TVDoc.ProviderType.TheTVDB); TvMazeCode = seriesXml.ExtractInt("mazeid") ?? -1; TmdbCode = seriesXml.ExtractInt("TMDBCode") ?? -1; Name = System.Web.HttpUtility.HtmlDecode( XmlHelper.ReadStringFixQuotesAndSpaces(seriesXml.ExtractStringOrNull("SeriesName") ?? seriesXml.ExtractString("seriesName"))); SrvLastUpdated = seriesXml.ExtractLong("lastupdated") ?? seriesXml.ExtractLong("lastUpdated", 0); LanguageId = seriesXml.ExtractInt("LanguageId") ?? seriesXml.ExtractInt("languageId") ?? throw new SourceConsistencyException("Error Extracting Language for Series", TVDoc.ProviderType.TheTVDB); CollectionId = seriesXml.ExtractInt("CollectionId"); Popularity = seriesXml.ExtractDouble("Popularity") ?? 0; CollectionName = seriesXml.ExtractStringOrNull("CollectionName"); TwitterId = seriesXml.ExtractStringOrNull("TwitterId"); InstagramId = seriesXml.ExtractStringOrNull("InstagramId"); FacebookId = seriesXml.ExtractStringOrNull("FacebookId"); TagLine = seriesXml.ExtractStringOrNull("TagLine"); PosterUrl = seriesXml.ExtractString("posterURL"); TrailerUrl = seriesXml.ExtractString("TrailerUrl"); FanartUrl = seriesXml.ExtractString("FanartUrl"); Imdb = seriesXml.ExtractStringOrNull("imdbId") ?? seriesXml.ExtractString("IMDB_ID"); WebUrl = seriesXml.ExtractString("WebURL"); OfficialUrl = seriesXml.ExtractString("OfficialUrl"); Type = seriesXml.ExtractString("Type"); ShowLanguage = seriesXml.ExtractString("ShowLanguage"); TvRageCode = seriesXml.ExtractInt("rageid") ?? 0; Network = seriesXml.ExtractStringOrNull("network") ?? seriesXml.ExtractString("Network"); Overview = seriesXml.ExtractStringOrNull("overview") ?? seriesXml.ExtractString("Overview"); ContentRating = seriesXml.ExtractStringOrNull("rating") ?? seriesXml.ExtractString("Rating"); Runtime = seriesXml.ExtractStringOrNull("runtime") ?? seriesXml.ExtractString("Runtime"); SeriesId = seriesXml.ExtractStringOrNull("seriesId") ?? seriesXml.ExtractString("SeriesID"); Status = seriesXml.ExtractStringOrNull("status") ?? seriesXml.ExtractString("Status"); SiteRatingVotes = seriesXml.ExtractInt("siteRatingCount") ?? seriesXml.ExtractInt("SiteRatingCount", 0); Slug = seriesXml.ExtractString("slug"); SiteRating = GetSiteRating(seriesXml); FirstAired = JsonHelper.ParseFirstAired(seriesXml.ExtractStringOrNull("FirstAired") ?? seriesXml.ExtractString("firstAired")); LoadActors(seriesXml); LoadAliases(seriesXml); LoadGenres(seriesXml); } catch (SourceConsistencyException e) { LOGGER.Error(e, GenerateErrorMessage()); // ReSharper disable once PossibleIntendedRethrow throw e; } }