using System; using System.Collections.Generic; using System.Linq; using System.Text; using libxmltv.Interfaces; using System.Xml.Linq; namespace libxmltv.Core { internal class XMLTVProgramCollection { private Dictionary entries = new Dictionary(); public XMLTVProgramCollection(object xmltv) { XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Creating Instance of XMLTVChannelCollection"); IXMLTV_PARSER _xmltv; if (!Internals.VerifyInstance(xmltv, out _xmltv)) { return; } XMLTV_PARSER = _xmltv; Create(); } #region IXMLTVSource private IXMLTV_PARSER XMLTV_PARSER { get; set; } public Dictionary Collection { get { return entries; } } #endregion private void Create() { var doc = XMLTV_PARSER.XMLTV_LOADER.XmlDoc; int index = 0; foreach (var c in doc.Descendants(XMLTV_CONSTANTS.PROGRAM_ELEMENT)) { Program program = new Program(c, index); entries.Add(program.ProgramId, program); index++; } } public override string ToString() { //return string.Format("XmlTv Source: '{0}' (Generated by: '{1}') (support: '{2}')", SourceName, GeneratorName, GeneratorUrl); return string.Empty; } } internal class Program : IXMLTVProgram { public Program() { ProgramId = 0; } public Program(XElement e, int index) : this() { //ProgramId = e.Attribute(XMLTV_CONSTANTS.Programs.ChannelStart).Value; ProgramId = index; } #region IXMLTVProgram members public int ProgramId { get; private set; } #endregion } }