ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/xmltv_parser/trunk/libxmltv/Core/XMLTVSource.cs
Revision: 25
Committed: Thu Mar 7 11:36:00 2013 UTC (10 years, 6 months ago) by william
File size: 1994 byte(s)
Log Message:

File Contents

# User Rev Content
1 william 25 using System;
2     using System.Collections.Generic;
3     using System.Linq;
4     using System.Text;
5     using libxmltv.Interfaces;
6     using System.Diagnostics;
7    
8     namespace libxmltv.Core
9     {
10     internal class XMLTVSource : IXMLTVSource
11     {
12     private Dictionary<string, string> entries = new Dictionary<string, string>();
13     public XMLTVSource(object xmltv)
14     {
15     XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Creating Instance of XMLTVSource");
16     IXMLTV_PARSER _xmltv;
17     if (!Internals.VerifyInstance<IXMLTV_PARSER>(xmltv, out _xmltv)) { return; }
18     XMLTV_PARSER = _xmltv;
19     Create();
20     }
21    
22     #region IXMLTVSource
23     private IXMLTV_PARSER XMLTV_PARSER { get; set; }
24     public string SourceName { get { return entries[XMLTV_CONSTANTS.Source.SourceName]; } }
25     public string GeneratorName { get { return entries[XMLTV_CONSTANTS.Source.GeneratorName]; } }
26     public string GeneratorUrl { get { return entries[XMLTV_CONSTANTS.Source.GeneratorUrl]; } }
27     #endregion
28    
29     private void Create()
30     {
31     var doc = XMLTV_PARSER.XMLTV_LOADER.XmlDoc;
32     Debug.Assert(doc.Root.Name == XMLTV_CONSTANTS.ROOT_ELEMENT, string.Format("Expected Root Element: '{0}' but read: '{1}'", XMLTV_CONSTANTS.ROOT_ELEMENT, doc.Root.Name));
33     XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tRoot: {0}", doc.Root.Name);
34     var attributes = doc.Root.Attributes().ToList();
35     foreach (var attribute in attributes)
36     {
37     //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\t{0}: {1}", attribute.Name, attribute.Value);
38     entries.Add(attribute.Name.ToString(), attribute.Value);
39     }
40     }
41     public override string ToString()
42     {
43     return string.Format("XmlTv Source: '{0}' (Generated by: '{1}') (support: '{2}')", SourceName, GeneratorName, GeneratorUrl);
44     }
45     }
46     }