/// <summary> /// Fetches metadata for an item from one xml file /// </summary> /// <param name="item">The item.</param> /// <param name="metadataFile">The metadata file.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <exception cref="System.ArgumentNullException"> /// </exception> public void Fetch(MetadataResult <T> item, string metadataFile, CancellationToken cancellationToken) { if (item == null) { throw new ArgumentNullException(); } if (string.IsNullOrEmpty(metadataFile)) { throw new ArgumentNullException(); } var settings = XmlReaderSettingsFactory.Create(false); settings.CheckCharacters = false; settings.IgnoreProcessingInstructions = true; settings.IgnoreComments = true; _validProviderIds = _validProviderIds = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase); var idInfos = ProviderManager.GetExternalIdInfos(item.Item); foreach (var info in idInfos) { var id = info.Key + "Id"; if (!_validProviderIds.ContainsKey(id)) { _validProviderIds.Add(id, info.Key); } } //Additional Mappings _validProviderIds.Add("collectionnumber", "TmdbCollection"); _validProviderIds.Add("tmdbcolid", "TmdbCollection"); _validProviderIds.Add("imdb_id", "Imdb"); Fetch(item, metadataFile, settings, cancellationToken); }
/// <summary> /// Fetches metadata for an item from one xml file /// </summary> /// <param name="item">The item.</param> /// <param name="metadataFile">The metadata file.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <exception cref="System.ArgumentNullException"></exception> public Task Fetch(MetadataResult <T> item, string metadataFile, CancellationToken cancellationToken) { if (item == null) { throw new ArgumentNullException(); } if (string.IsNullOrEmpty(metadataFile)) { throw new ArgumentNullException(); } var settings = Create(false); settings.CheckCharacters = false; settings.IgnoreProcessingInstructions = true; settings.IgnoreComments = true; settings.Async = true; _validProviderIds = _validProviderIds = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase); var idInfos = ProviderManager.GetExternalIdInfos(item.Item); foreach (var info in idInfos) { var id = info.Key + "Id"; if (!_validProviderIds.ContainsKey(id)) { _validProviderIds.Add(id, info.Key); } } //Additional Mappings _validProviderIds.Add("IMDB", "Imdb"); //Fetch(item, metadataFile, settings, Encoding.GetEncoding("ISO-8859-1"), cancellationToken); return(Fetch(item, metadataFile, settings, Encoding.UTF8, cancellationToken)); }