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

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

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

--- trunk/libxmltv/Core/XMLTVChannel.cs	2013/03/09 12:41:07	83
+++ trunk/libxmltv/Core/XMLTVChannel.cs	2013/03/10 09:43:49	97
@@ -14,16 +14,18 @@
     internal class XMLTVChannel : XMLTVBase<XMLTVRuntimeInstance>, IXMLTVChannel
     {
         public XMLTVChannel()
-            : base(null, XMLTVConstants.CHANNEL_ELEMENT)
+            : base(null, XMLTVConstants.Channels.RootElement)
         {
+            InternalDictionaryAddKnownProperties();
             Id = string.Empty;
-            Number = 0;
-            CallSign = string.Empty;
-            Name = string.Empty;
+            //Number = 0;
+            //CallSign = string.Empty;
+            //Name = string.Empty;
         }
         public XMLTVChannel(XMLTVRuntimeInstance instance, XElement node)
-            : base(instance, XMLTVConstants.CHANNEL_ELEMENT)
+            : base(instance, XMLTVConstants.Channels.RootElement)
         {
+            InternalDictionaryAddKnownProperties();
             try
             {
                 xmltv_logger.Verbose.Debug.WriteLine("Creating Instance of XMLTVChannel");
@@ -33,15 +35,22 @@
             }
             catch (IOException ex) { Debug.WriteLine(ex.ToString()); }
         }
+        private void InternalDictionaryAddKnownProperties()
+        {
+            MetaData = new PropertyList();
+            //MetaData.AddProperty("Id", string.Empty);
+        }
         #region IXMLTVChannel members
         public string Id { get; private set; }
-        public int Number { get; private set; }
-        public string CallSign { get; private set; }
-        public string Name { get; private set; }
+        //public int Number { get; private set; }
+        //public string CallSign { get; private set; }
+        //public string Name { get; private set; }
+        private PropertyList _MetaData;
+        public PropertyList MetaData { get { return _MetaData; } private set { _MetaData = value; } }
         #endregion
         public override string ToString()
         {
-            return string.Format("{0}: {1} {2} ({3})", Id, Number, Name, CallSign);
+            return string.Format("{0}", Id);
         }
 
         private void UpdateInstance()
@@ -77,16 +86,25 @@
 
         private void Create(XElement node)
         {
+            //throw new NotImplementedException("Channel.Create(node) is not currently implemented.");
             // get the channel id
             Id = node.Attribute(XMLTVConstants.Channels.ChannelId).Value;
             xmltv_logger.Verbose.Debug.WriteLine("\tchannel_id: {0}", Id);
             var names = node.Descendants(XMLTVConstants.Channels.ChannelDisplayName).ToList();
-            Number = Convert.ToInt32(names[1].Value);
-            xmltv_logger.Verbose.Debug.WriteLine("\tchannel_number: {0}", Number);
-            CallSign = names[2].Value;
-            xmltv_logger.Verbose.Debug.WriteLine("\tchannel_callsign: {0}", CallSign);
-            Name = names[3].Value;
-            xmltv_logger.Verbose.Debug.WriteLine("\tchannel_name: {0}", Name);
+            //Number = Convert.ToInt32(names[1].Value);
+            //xmltv_logger.Verbose.Debug.WriteLine("\tchannel_number: {0}", Number);
+            //CallSign = names[2].Value;
+            //xmltv_logger.Verbose.Debug.WriteLine("\tchannel_callsign: {0}", CallSign);
+            //Name = names[3].Value;
+            //xmltv_logger.Verbose.Debug.WriteLine("\tchannel_name: {0}", Name);
+
+            foreach (var name in names)
+            {
+                PropertyValuePair p = new PropertyValuePair(name.Name.ToString(), name.Value);
+                MetaData.AddProperty(p.Name,p.Value);
+                xmltv_logger.Verbose.Debug.WriteLine("\t{0}: {1}", p.Name, p.Value);
+            }
+
         }
     }
 

 

  ViewVC Help
Powered by ViewVC 1.1.22