From 874469d47633851f4da75ad8640bc47dcfa810ce Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Sun, 19 Aug 2012 12:54:41 -0400 Subject: Made xml fetching task-based --- MediaBrowser.Controller/Xml/BaseItemXmlParser.cs | 43 +++++++++++++----------- 1 file changed, 24 insertions(+), 19 deletions(-) (limited to 'MediaBrowser.Controller/Xml/BaseItemXmlParser.cs') diff --git a/MediaBrowser.Controller/Xml/BaseItemXmlParser.cs b/MediaBrowser.Controller/Xml/BaseItemXmlParser.cs index eabbae8693..0e514b8b21 100644 --- a/MediaBrowser.Controller/Xml/BaseItemXmlParser.cs +++ b/MediaBrowser.Controller/Xml/BaseItemXmlParser.cs @@ -4,6 +4,7 @@ using System.IO; using System.Linq; using System.Xml; using MediaBrowser.Model.Entities; +using System.Threading.Tasks; namespace MediaBrowser.Controller.Xml { @@ -16,33 +17,37 @@ namespace MediaBrowser.Controller.Xml /// /// Fetches metadata for an item from one xml file /// - public virtual void Fetch(T item, string metadataFile) + public Task Fetch(T item, string metadataFile) { - // Use XmlReader for best performance - using (XmlReader reader = XmlReader.Create(metadataFile)) + // Wrapping this for now until I have a chance to async the whole process + return Task.Run(() => { - reader.MoveToContent(); - - // Loop through each element - while (reader.Read()) + // Use XmlReader for best performance + using (XmlReader reader = XmlReader.Create(metadataFile)) { - if (reader.NodeType == XmlNodeType.Element) + reader.MoveToContent(); + + // Loop through each element + while (reader.Read()) { - FetchDataFromXmlNode(reader, item); + if (reader.NodeType == XmlNodeType.Element) + { + FetchDataFromXmlNode(reader, item); + } } } - } - // If dates weren't supplied in metadata, use values from the xml file - if (item.DateCreated == DateTime.MinValue) - { - item.DateCreated = File.GetCreationTime(metadataFile); - } + // If dates weren't supplied in metadata, use values from the xml file + if (item.DateCreated == DateTime.MinValue) + { + item.DateCreated = File.GetCreationTime(metadataFile); + } - if (item.DateModified == DateTime.MinValue) - { - item.DateModified = File.GetLastWriteTime(metadataFile); - } + if (item.DateModified == DateTime.MinValue) + { + item.DateModified = File.GetLastWriteTime(metadataFile); + } + }); } /// -- cgit v1.2.3