/[xmltv_parser]/trunk/libxmltv/Core/XMLTVSource.cs
ViewVC logotype

Diff of /trunk/libxmltv/Core/XMLTVSource.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 74 by william, Sat Mar 9 11:06:39 2013 UTC revision 88 by william, Sat Mar 9 14:52:10 2013 UTC
# Line 6  using libxmltv.Interfaces; Line 6  using libxmltv.Interfaces;
6  using System.Diagnostics;  using System.Diagnostics;
7  using System.Xml.Linq;  using System.Xml.Linq;
8  using System.Reflection;  using System.Reflection;
9    using System.IO;
10    
11  namespace libxmltv.Core  namespace libxmltv.Core
12  {  {
# Line 27  namespace libxmltv.Core Line 28  namespace libxmltv.Core
28          //    this.GeneratorUrl = generatorurl;          //    this.GeneratorUrl = generatorurl;
29          //}          //}
30          public XMLTVSource()          public XMLTVSource()
31              : base(null, XMLTVConstants.ROOT_ELEMENT)              : base(null, XMLTVConstants.Root.RootElement)
32          {          {
33              this.SourceName = string.Empty;              this.SourceName = string.Empty;
34              this.GeneratorName = string.Empty;              this.GeneratorName = string.Empty;
35              this.GeneratorUrl = string.Empty;              this.GeneratorUrl = string.Empty;
36          }          }
37          public XMLTVSource(XMLTVRuntimeInstance instance) : base(instance, XMLTVConstants.ROOT_ELEMENT)          public XMLTVSource(XMLTVRuntimeInstance instance)
38                : base(instance, XMLTVConstants.Root.RootElement)
39          {          {
40                try {
41              xmltv_logger.Verbose.Debug.WriteLine("Creating Instance of XMLTVSource");              xmltv_logger.Verbose.Debug.WriteLine("Creating Instance of XMLTVSource");
42              Create();              Create();
43              xmltv_logger.Verbose.Debug.WriteLine("Created Instance of XMLTVSource '{0}'", SourceName);              xmltv_logger.Verbose.Debug.WriteLine("Created Instance of XMLTVSource '{0}'", SourceName);
44              UpdateInstance();              UpdateInstance();
45                }
46                catch (IOException ex) { Debug.WriteLine(ex.ToString()); }
47          }          }
48    
49          private void UpdateInstance()          private void UpdateInstance()
# Line 48  namespace libxmltv.Core Line 53  namespace libxmltv.Core
53              var fields = instance_type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);              var fields = instance_type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
54              foreach (var field in fields)              foreach (var field in fields)
55              {              {
56                  if (field.FieldType == typeof(List<IXMLTVSource>))                  if (field.FieldType == typeof(IXMLTVSource))
57                  {                  {
58                      found_field = true;                      found_field = true;
59                      try                      try
60                      {                      {
61                          xmltv_logger.Verbose.Debug.WriteLine("Updating instance with source information: {0}", this.ToString());                          xmltv_logger.Verbose.Debug.WriteLine("Updating instance with source information: {0}", this.ToString());
62                          field.SetValue(this.GetInstance(), new List<IXMLTVSource>() { this });                                                  field.SetValue(this.GetInstance(), this);                        
63                          break;                          break;
64                      }                      }
65                      catch (Exception ex)                      catch (Exception ex)
# Line 80  namespace libxmltv.Core Line 85  namespace libxmltv.Core
85          private void Create()          private void Create()
86          {          {
87              var doc = XDocument.Parse(this.GetInstance().XmlDoc);              var doc = XDocument.Parse(this.GetInstance().XmlDoc);
88              Debug.Assert(doc.Root.Name == XMLTVConstants.ROOT_ELEMENT, string.Format("Expected Root Element: '{0}' but read: '{1}'", XMLTVConstants.ROOT_ELEMENT, doc.Root.Name));              Debug.Assert(doc.Root.Name == XMLTVConstants.Root.RootElement, string.Format("Expected Root Element: '{0}' but read: '{1}'", XMLTVConstants.Root.RootElement, doc.Root.Name));
89              //xmltv_logger.Verbose.Debug.WriteLine("\tRoot: {0}", doc.Root.Name);              //xmltv_logger.Verbose.Debug.WriteLine("\tRoot: {0}", doc.Root.Name);
90              var attributes = doc.Root.Attributes().ToList();              var attributes = doc.Root.Attributes().ToList();
91              foreach (var attribute in attributes)              foreach (var attribute in attributes)

Legend:
Removed from v.74  
changed lines
  Added in v.88

  ViewVC Help
Powered by ViewVC 1.1.22