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;
        }
Exemple #3
0
        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));
        }