/[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 28 by william, Thu Mar 7 12:51:53 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    
52                  program.Id = index;                  program.Id = index;
53                    //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);
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);
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);
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                      {                      {
71                          XMLTV_LOGGER.Log.Verbose.Error.WriteLine(string.Format("Unable to find Channel by id: '{0}' for this program.", channelid));                          XMLTV_LOGGER.Log.Verbose.Error.WriteLine(string.Format("Unable to find Channel by id: '{0}' for this program.", channelid));
72                      }                      }
73                      program.Channel = channel;                      program.Channel = channel;
74                        //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tprogram_channel: {0}", program.Channel.ToString());
75                  }                  }
76                  var title = c.Descendants(XMLTV_CONSTANTS.Programs.ProgramTitle).FirstOrDefault().Value;                  try
77                  program.Title = title;                  {
78                  var subtitle = c.Descendants(XMLTV_CONSTANTS.Programs.ProgramSubTitle).FirstOrDefault().Value;                      var title = c.Descendants(XMLTVConstants.Programs.ProgramTitle).FirstOrDefault().Value;
79                  program.SubTitle = subtitle;                      program.Title = title;                    
80                  var description = c.Descendants(XMLTV_CONSTANTS.Programs.ProgramDescription).FirstOrDefault().Value;                  }
81                  program.Description = description;                  catch (Exception) { program.Title = string.Empty; }
82                    //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tprogram_title: {0}", program.Title == string.Empty ? "empty" : program.Title);
83                    try
84                    {
85                        var subtitle = c.Descendants(XMLTVConstants.Programs.ProgramSubTitle).FirstOrDefault().Value;
86                        program.SubTitle = subtitle;                    
87                    }
88                    catch (Exception) { program.SubTitle = string.Empty; }
89                    //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tprogram_subtitle: {0}", program.SubTitle == string.Empty ? "empty" : program.SubTitle);
90                    try
91                    {
92                        var description = c.Descendants(XMLTVConstants.Programs.ProgramDescription).FirstOrDefault().Value;
93                        program.Description = description;                    
94                    }
95                    catch (Exception) { program.Description = string.Empty; }
96                    //XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tprogram_description: {0}", program.Description == string.Empty ? "empty" : program.Description);
97    
98                  entries.Add(program.Id, program);                  entries.Add(program.Id, program);
99                  index++;                  index++;
# Line 86  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.28  
changed lines
  Added in v.36

  ViewVC Help
Powered by ViewVC 1.1.22