ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/xmltv_parser/trunk/libxmltv/Core/XMLTVLoader.cs
Revision: 49
Committed: Fri Mar 8 05:20:12 2013 UTC (10 years, 6 months ago) by william
File size: 2446 byte(s)
Log Message:

File Contents

# User Rev Content
1 william 11 using System;
2     using System.Collections.Generic;
3     using System.Linq;
4     using System.Text;
5     using libxmltv.Interfaces;
6     using System.IO;
7 william 14 using Enterprise.Logging;
8 william 19 using System.Xml.Linq;
9 william 49 using System.Xml;
10 william 11
11     namespace libxmltv.Core
12 william 22 {
13 william 44 internal class XMLTVLoader : IDisposable
14 william 11 {
15     private string xmlfile = string.Empty;
16 william 44 internal static void CreateInstance(string xml_file, XMLTVRuntimeInstance xmltv)
17     {
18     using (XMLTVLoader g = new XMLTVLoader(xml_file, xmltv)) { }
19     }
20 william 36 private XMLTVRuntimeInstance instance;
21 william 44 protected XMLTVLoader(string xml_file, XMLTVRuntimeInstance xmltv)
22 william 11 {
23 william 46 xmltv_logger.Log.Verbose.Debug.WriteLine("Creating Instance of XMLTVLoader");
24 william 36 //string _xmltv;
25     //if (!Internals.VerifyInstance<string>(xmltv, out _xmltv)) { return; }
26     //xmlfile = _xmltv;
27     //LoadXml();
28     instance = xmltv;
29     instance.XmlFile = new FileInfo(xml_file);
30 william 16 LoadXml();
31 william 11 }
32 william 36 //#region IXMLTV_LOADER
33     //public FileInfo XmlFile { get { return new FileInfo(xmlfile); } }
34     //public XDocument XmlDoc { get; private set; }
35     //#endregion
36 william 16
37     private void LoadXml()
38     {
39 william 46 xmltv_logger.Log.Info.WriteLine("Loading XMLTV File: {0}", instance.XmlFile.Name);
40     //xmltv_logger.Log.Warn.WriteLine("XML File Loading has not been implemented yet!");
41 william 21 try
42     {
43 william 49 var document = XDocument.Load(instance.XmlFile.FullName);
44     using (var ms = new MemoryStream())
45     using (var xw = new XmlTextWriter(ms, Encoding.UTF8))
46     {
47     document.Save(xw);
48     xw.Flush();
49     StreamReader sr = new StreamReader(ms);
50     ms.Seek(0, SeekOrigin.Begin);
51     instance.XmlDoc = sr.ReadToEnd();
52     }
53     document = null;
54 william 21 }
55     catch (Exception ex)
56     {
57 william 46 xmltv_logger.Log.Error.WriteLine("Failed to load XMLTV File: {0}", instance.XmlFile.Name);
58     xmltv_logger.Log.Error.WriteLine(ex.GetBaseException().ToString());
59 william 21 }
60 william 16 }
61 william 44
62     public void Dispose()
63     {
64     //throw new NotImplementedException();
65     }
66 william 49
67    
68 william 11 }
69     }