--- trunk/libxmltv/Core/XMLTV_LOADER.cs 2013/03/07 09:26:43 16
+++ trunk/libxmltv/Core/XMLTV_LOADER.cs 2013/03/07 10:20:50 22
@@ -5,58 +5,38 @@ using System.Text;
using libxmltv.Interfaces;
using System.IO;
using Enterprise.Logging;
+using System.Xml.Linq;
namespace libxmltv.Core
-{
- ///
- /// Main class: Creates the XMLTV Loader
- ///
- public static class XMLTV
- {
- public static object CreateLoader(string xml_file)
- {
- XMLTV_LOGGER.Initialize();
- XMLTV_LOADER loader = new XMLTV_LOADER(xml_file);
- return loader;
- }
- public static void Test(object xmltv)
- {
- if (!VerifyInstance(xmltv)) { return; }
- }
-
-
- private static bool VerifyInstance(object xmltv) where T : class
- {
- try
- {
- if (xmltv == null) { return false; }
- T t = (xmltv as T);
- if (t == null) { throw new InvalidCastException(string.Format("Unable to cast type: {0} to {1}", xmltv.GetType().Name, typeof(T).Name)); }
- else { return true; }
- }
- catch (Exception ex)
- {
- throw new InvalidCastException(string.Format("Unable to cast type: {0} to {1}", xmltv.GetType().Name, typeof(T).Name), ex);
- }
- }
- }
-
+{
internal class XMLTV_LOADER : IXMLTV_LOADER
{
private string xmlfile = string.Empty;
- public XMLTV_LOADER(string xml_file)
+ public XMLTV_LOADER(object xmltv)
{
- xmlfile = xml_file;
+ string _xmltv;
+ if (!Internals.VerifyInstance(xmltv, out _xmltv)) { return; }
+ xmlfile = _xmltv;
LoadXml();
}
#region IXMLTV_LOADER
public FileInfo XmlFile { get { return new FileInfo(xmlfile); } }
+ public XDocument XmlDoc { get; private set; }
#endregion
private void LoadXml()
{
XMLTV_LOGGER.Log.Info.WriteLine("Loading XMLTV File: {0}", XmlFile.Name);
- XMLTV_LOGGER.Log.Warn.WriteLine("XML File Loading has not been implemented yet!");
+ //XMLTV_LOGGER.Log.Warn.WriteLine("XML File Loading has not been implemented yet!");
+ try
+ {
+ XmlDoc = XDocument.Load(XmlFile.FullName);
+ }
+ catch (Exception ex)
+ {
+ XMLTV_LOGGER.Log.Error.WriteLine("Failed to load XMLTV File: {0}", XmlFile.Name);
+ XMLTV_LOGGER.Log.Error.WriteLine(ex.GetBaseException().ToString());
+ }
}
}
}