Пример #1
0
        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;
            }
        }