private static OMLSDKTitle LoadTitle(string id) { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException("id"); OMLSDKTitle result = null; if (defaultTitles == null) { DVDProfilerImporter importer; using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(defaultSettings), false)) { importer = new DVDProfilerImporter(new XmlTextReader(ms)); } string xmlPath = @"..\..\..\Sample Files\DVDProfilerUnitTest.xml"; importer.DoWork(new[] { xmlPath }); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(xmlPath); defaultTitles = importer.GetTitles(); Assert.AreEqual(xmlDoc.SelectNodes("Collection/DVD").Count, defaultTitles.Count, "Unexpected number of profiles loaded."); } foreach (OMLSDKTitle title in defaultTitles) { if (title.MetadataSourceID == id) { result = title; break; } } Assert.IsNotNull(result, "The DVDProfilerUnitTest.xml file does not contain a title with ID " + id); return result; }
public bool SearchForMovie(string movieName, int maxResults) { movieName = CleanString(movieName); foundTitle = null; List<string> possibleIds = new List<string>(); if (dvdsByName.ContainsKey(movieName)) { possibleIds.Add(dvdsByName[movieName]); } else if ( dvdsBySortName.ContainsKey(movieName)) { possibleIds.Add(dvdsBySortName[movieName]); } else { foreach (string key in dvdsByName.Keys) { if (key.StartsWith(movieName, StringComparison.OrdinalIgnoreCase)) { possibleIds.Add(dvdsByName[key]); } } } // try the sort names if none of the other names panned out if (possibleIds.Count == 0) { foreach (string key in dvdsBySortName.Keys) { if (key.StartsWith(movieName, StringComparison.OrdinalIgnoreCase)) { possibleIds.Add(dvdsBySortName[key]); } } } IEnumerable<string> unusedPossibleIds = SDKUtilities.GetUniqueMetaIds(possibleIds, this.PluginName); foreach (string possibleId in unusedPossibleIds) { var navigator = document.CreateNavigator(); foreach (XPathNavigator dvd in navigator.Select("/Collection/DVD|/DVD")) // Allow both collection file and single profile export { foreach (XPathNavigator child in dvd.SelectChildren(XPathNodeType.Element)) { if (child.Name == "ID") { if (child.Value == possibleId) { child.MoveToParent(); DVDProfilerImporter importer = new DVDProfilerImporter(); foundTitle = importer.LoadTitle(child, false); importer.GetImagesForNewTitle(foundTitle); } } if (foundTitle != null) break; } if (foundTitle != null) break; } // we only care about the first one for now break; } return foundTitle != null; }
public bool SearchForMovie(string movieName, int maxResults) { movieName = CleanString(movieName); foundTitle = null; List <string> possibleIds = new List <string>(); if (dvdsByName.ContainsKey(movieName)) { possibleIds.Add(dvdsByName[movieName]); } else if (dvdsBySortName.ContainsKey(movieName)) { possibleIds.Add(dvdsBySortName[movieName]); } else { foreach (string key in dvdsByName.Keys) { if (key.StartsWith(movieName, StringComparison.OrdinalIgnoreCase)) { possibleIds.Add(dvdsByName[key]); } } } // try the sort names if none of the other names panned out if (possibleIds.Count == 0) { foreach (string key in dvdsBySortName.Keys) { if (key.StartsWith(movieName, StringComparison.OrdinalIgnoreCase)) { possibleIds.Add(dvdsBySortName[key]); } } } IEnumerable <string> unusedPossibleIds = SDKUtilities.GetUniqueMetaIds(possibleIds, this.PluginName); foreach (string possibleId in unusedPossibleIds) { var navigator = document.CreateNavigator(); foreach (XPathNavigator dvd in navigator.Select("/Collection/DVD|/DVD")) // Allow both collection file and single profile export { foreach (XPathNavigator child in dvd.SelectChildren(XPathNodeType.Element)) { if (child.Name == "ID") { if (child.Value == possibleId) { child.MoveToParent(); DVDProfilerImporter importer = new DVDProfilerImporter(); foundTitle = importer.LoadTitle(child, false); importer.GetImagesForNewTitle(foundTitle); } } if (foundTitle != null) { break; } } if (foundTitle != null) { break; } } // we only care about the first one for now break; } return(foundTitle != null); }
public void TEST_IMPORT_INTO_DATABASE() { Console.WriteLine("Running dvd profiler importer"); DVDProfilerImporter importer = new DVDProfilerImporter(); importer.DoWork(new[] { @"..\..\..\Sample Files\DVDProfiler - Large.xml" }); IList<OMLSDKTitle> titles = importer.GetTitles(); Console.WriteLine("Adding items to the db"); DateTime start = DateTime.Now; foreach (OMLSDKTitle title in titles) { // save the title - this also generates it an id TitleCollectionManager.AddTitle(OMLSDK.SDKUtilities.ConvertOMLSDKTitleToTitle(title)); } // save all the image updates TitleCollectionManager.SaveTitleUpdates(); Console.WriteLine(string.Format("Done - Took: {0} milliseconds for {1} titles", (DateTime.Now - start).TotalMilliseconds.ToString(), titles.Count)); }