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

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

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

revision 30 by william, Thu Mar 7 13:36:42 2013 UTC revision 36 by william, Fri Mar 8 02:13:59 2013 UTC
# Line 11  namespace libxmltv.Core Line 11  namespace libxmltv.Core
11      internal class XMLTVProgramCollection      internal class XMLTVProgramCollection
12      {      {
13          private Dictionary<int, IXMLTVProgram> entries = new Dictionary<int, IXMLTVProgram>();          private Dictionary<int, IXMLTVProgram> entries = new Dictionary<int, IXMLTVProgram>();
14          public XMLTVProgramCollection(object xmltv)          private XMLTVRuntimeInstance instance;
15            public XMLTVProgramCollection(XMLTVRuntimeInstance xmltv)
16          {          {
17              XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Creating Instance of XMLTVProgramCollection");              XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Creating Instance of XMLTVProgramCollection");
18              IXMLTV_PARSER _xmltv;              //IXMLTV_PARSER _xmltv;
19              if (!Internals.VerifyInstance<IXMLTV_PARSER>(xmltv, out _xmltv)) { return; }              //if (!Internals.VerifyInstance<IXMLTV_PARSER>(xmltv, out _xmltv)) { return; }
20              XMLTV_PARSER = _xmltv;              //XMLTV_PARSER = _xmltv;
21                instance = xmltv;
22              Create();              Create();
23          }          }
24    
25          #region IXMLTVSource          #region IXMLTVSource
26          private IXMLTV_PARSER XMLTV_PARSER { get; set; }          //private IXMLTV_PARSER XMLTV_PARSER { get; set; }
27          public Dictionary<int, IXMLTVProgram> Collection          public Dictionary<int, IXMLTVProgram> Collection
28          {          {
29              get { return entries; }              get { return entries; }
# Line 41  namespace libxmltv.Core Line 43  namespace libxmltv.Core
43          }          }
44          private void Create()          private void Create()
45          {          {
46              var doc = XMLTV_PARSER.XMLTV_LOADER.XmlDoc;              var doc = instance.XmlDoc;
47              int index = 0;              int index = 0;
48              foreach (var c in doc.Descendants(XMLTV_CONSTANTS.PROGRAM_ELEMENT))              foreach (var c in doc.Descendants(XMLTVConstants.PROGRAM_ELEMENT))
49              {              {
50                  Program program = new Program();                  Program program = new Program();
51    
# Line 51  namespace libxmltv.Core Line 53  namespace libxmltv.Core
53                  //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("program_Id: {0}", program.Id);                  //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("program_Id: {0}", program.Id);
54                  if (c.HasAttributes)                  if (c.HasAttributes)
55                  {                  {
56                      var start = c.Attribute(XMLTV_CONSTANTS.Programs.ProgramStart).Value;                      var start = c.Attribute(XMLTVConstants.Programs.ProgramStart).Value;
57                      program.Start = ParseDate(start);                      program.Start = ParseDate(start);
58                      //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tprogram_start: {0}", start);                      //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tprogram_start: {0}", start);
59                      var stop = c.Attribute(XMLTV_CONSTANTS.Programs.ProgramStop).Value;                      var stop = c.Attribute(XMLTVConstants.Programs.ProgramStop).Value;
60                      program.Stop = ParseDate(stop);                      program.Stop = ParseDate(stop);
61                      //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tprogram_stop: {0}", stop);                      //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tprogram_stop: {0}", stop);
62                      var channelid = c.Attribute(XMLTV_CONSTANTS.Programs.ProgramChannelId).Value;                      var channelid = c.Attribute(XMLTVConstants.Programs.ProgramChannelId).Value;
63                      //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tprogram_channelid: {0}", channelid);                      //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tprogram_channelid: {0}", channelid);
64                      IXMLTVChannel channel = new Channel();                      IXMLTVChannel channel = new Channel();
65                      try                      try
66                      {                      {
67                          channel = XMLTV_PARSER.Channels[channelid];                          channel = instance.Channels[channelid];
   
68                      }                      }
69                      catch (KeyNotFoundException)                      catch (KeyNotFoundException)
70                      {                      {
# Line 74  namespace libxmltv.Core Line 75  namespace libxmltv.Core
75                  }                  }
76                  try                  try
77                  {                  {
78                      var title = c.Descendants(XMLTV_CONSTANTS.Programs.ProgramTitle).FirstOrDefault().Value;                      var title = c.Descendants(XMLTVConstants.Programs.ProgramTitle).FirstOrDefault().Value;
79                      program.Title = title;                                          program.Title = title;                    
80                  }                  }
81                  catch (Exception) { program.Title = string.Empty; }                  catch (Exception) { program.Title = string.Empty; }
82                  //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tprogram_title: {0}", program.Title == string.Empty ? "empty" : program.Title);                  //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tprogram_title: {0}", program.Title == string.Empty ? "empty" : program.Title);
83                  try                  try
84                  {                  {
85                      var subtitle = c.Descendants(XMLTV_CONSTANTS.Programs.ProgramSubTitle).FirstOrDefault().Value;                      var subtitle = c.Descendants(XMLTVConstants.Programs.ProgramSubTitle).FirstOrDefault().Value;
86                      program.SubTitle = subtitle;                                          program.SubTitle = subtitle;                    
87                  }                  }
88                  catch (Exception) { program.SubTitle = string.Empty; }                  catch (Exception) { program.SubTitle = string.Empty; }
89                  //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tprogram_subtitle: {0}", program.SubTitle == string.Empty ? "empty" : program.SubTitle);                  //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tprogram_subtitle: {0}", program.SubTitle == string.Empty ? "empty" : program.SubTitle);
90                  try                  try
91                  {                  {
92                      var description = c.Descendants(XMLTV_CONSTANTS.Programs.ProgramDescription).FirstOrDefault().Value;                      var description = c.Descendants(XMLTVConstants.Programs.ProgramDescription).FirstOrDefault().Value;
93                      program.Description = description;                                          program.Description = description;                    
94                  }                  }
95                  catch (Exception) { program.Description = string.Empty; }                  catch (Exception) { program.Description = string.Empty; }
# Line 104  namespace libxmltv.Core Line 105  namespace libxmltv.Core
105              return string.Empty;              return string.Empty;
106          }          }
107      }      }
108        [Serializable]
109      internal class Program : IXMLTVProgram      internal class Program : IXMLTVProgram
110      {      {
111          public Program()          public Program()

Legend:
Removed from v.30  
changed lines
  Added in v.36

  ViewVC Help
Powered by ViewVC 1.1.22