43 |
|
|
44 |
private void InternalDictionaryAddKnownProperties() |
private void InternalDictionaryAddKnownProperties() |
45 |
{ |
{ |
46 |
Properties = new PropertyDictionary(); |
MetaData = new PropertyDictionary(); |
47 |
Properties.AddProperty("Id", 0); |
MetaData.AddProperty("Id", 0); |
48 |
Properties.AddProperty(XMLTVConstants.Programs.ProgramStart, new DateTime()); |
MetaData.AddProperty(XMLTVConstants.Programs.ProgramStart, new DateTime()); |
49 |
Properties.AddProperty(XMLTVConstants.Programs.ProgramStop, new DateTime()); |
MetaData.AddProperty(XMLTVConstants.Programs.ProgramStop, new DateTime()); |
50 |
Properties.AddProperty(XMLTVConstants.Programs.ProgramChannelId, string.Empty); |
MetaData.AddProperty(XMLTVConstants.Programs.ProgramChannelId, string.Empty); |
51 |
Properties.AddProperty(XMLTVConstants.Programs.ProgramTitle, string.Empty); |
MetaData.AddProperty(XMLTVConstants.Programs.ProgramTitle, string.Empty); |
52 |
Properties.AddProperty(XMLTVConstants.Programs.ProgramSubTitle, string.Empty); |
MetaData.AddProperty(XMLTVConstants.Programs.ProgramSubTitle, string.Empty); |
53 |
Properties.AddProperty(XMLTVConstants.Programs.ProgramDescription, string.Empty); |
MetaData.AddProperty(XMLTVConstants.Programs.ProgramDescription, string.Empty); |
54 |
} |
} |
55 |
|
|
56 |
#region Property Dictionary Support |
#region Property Dictionary Support |
57 |
public PropertyDictionary Properties { get; private set; } |
public PropertyDictionary MetaData { get; private set; } |
58 |
#endregion |
#endregion |
59 |
|
|
60 |
#endregion |
#endregion |
61 |
public override string ToString() |
public override string ToString() |
62 |
{ |
{ |
63 |
return string.Format("{0}: {1} - {2} ({3}) ['{4}' <==> '{5}']", |
return string.Format("{0}: {1} - {2} ({3}) ['{4}' <==> '{5}']", |
64 |
Properties["Id"].ToString(), |
MetaData["Id"].ToString(), |
65 |
Properties[(XMLTVConstants.Programs.ProgramTitle)].ToString(), |
MetaData[(XMLTVConstants.Programs.ProgramTitle)].ToString(), |
66 |
Properties[(XMLTVConstants.Programs.ProgramSubTitle)].ToString(), |
MetaData[(XMLTVConstants.Programs.ProgramSubTitle)].ToString(), |
67 |
Properties[(XMLTVConstants.Programs.ProgramChannelId)].ToString(), |
MetaData[(XMLTVConstants.Programs.ProgramChannelId)].ToString(), |
68 |
((DateTime) Properties[XMLTVConstants.Programs.ProgramStart]).ToString("yyyy/MM/dd hh:mm tt"), |
((DateTime)MetaData[XMLTVConstants.Programs.ProgramStart]).ToString("yyyy/MM/dd hh:mm tt"), |
69 |
((DateTime) Properties[XMLTVConstants.Programs.ProgramStop]).ToString("yyyy/MM/dd hh:mm tt")); |
((DateTime)MetaData[XMLTVConstants.Programs.ProgramStop]).ToString("yyyy/MM/dd hh:mm tt")); |
70 |
} |
} |
71 |
|
|
72 |
|
|
86 |
{ |
{ |
87 |
|
|
88 |
var list = (List<IXMLTVProgram>)field.GetValue(this.GetInstance()); |
var list = (List<IXMLTVProgram>)field.GetValue(this.GetInstance()); |
89 |
Properties["Id"] = list.Count + 1; |
MetaData["Id"] = list.Count + 1; |
90 |
list.Add(this); |
list.Add(this); |
91 |
xmltv_logger.Verbose.Debug.WriteLine("Updating instance with program information: {0}", this.ToString()); |
xmltv_logger.Verbose.Debug.WriteLine("Updating instance with program information: {0}", this.ToString()); |
92 |
field.SetValue(this.GetInstance(), list); |
field.SetValue(this.GetInstance(), list); |
107 |
|
|
108 |
private void Create(XElement node) |
private void Create(XElement node) |
109 |
{ |
{ |
|
//if (node.HasAttributes) |
|
|
//{ |
|
|
// var start = node.Attribute(XMLTVConstants.Programs.ProgramStart); |
|
|
// this.Start = start == null ? new DateTime() : ParseDate(start.Value); |
|
|
// if (!this.Start.Equals(new DateTime())) { xmltv_logger.Verbose.Debug.WriteLine("\tprogram_start: {0}", start); } |
|
|
|
|
|
// var stop = node.Attribute(XMLTVConstants.Programs.ProgramStop); |
|
|
// this.Stop = stop == null ? new DateTime() : ParseDate(stop.Value); |
|
|
// if (!this.Stop.Equals(new DateTime())) { xmltv_logger.Verbose.Debug.WriteLine("\tprogram_stop: {0}", stop); } |
|
|
|
|
|
// var channelid = node.Attribute(XMLTVConstants.Programs.ProgramChannelId); |
|
|
// if (!string.IsNullOrEmpty(this.channelid)) { xmltv_logger.Verbose.Debug.WriteLine("\tprogram_channelid: {0}", channelid); } |
|
|
// IXMLTVChannel channel = new XMLTVChannel(); |
|
|
// string _channelid = channelid == null ? string.Empty : channelid.Value; |
|
|
// this.Channel = this.GetInstance().Channels.Find(m => m.Id == _channelid); |
|
|
// if (this.Channel == null) { this.Channel = new XMLTVChannel(); } |
|
|
// if (!string.IsNullOrEmpty(_channelid)) { xmltv_logger.Verbose.Debug.WriteLine("\tprogram_channel: {0}", this.Channel.ToString()); } //} |
|
|
//try |
|
|
//{ |
|
|
// var title = node.Descendants(XMLTVConstants.Programs.ProgramTitle).FirstOrDefault(); |
|
|
// this.Title = title == null ? string.Empty : title.Value; |
|
|
//} |
|
|
//catch (Exception) { this.Title = string.Empty; } |
|
|
//if (!string.IsNullOrEmpty(this.Title)) { xmltv_logger.Verbose.Debug.WriteLine("\tprogram_title: {0}", this.Title == string.Empty ? "empty" : this.Title); } |
|
|
//try |
|
|
//{ |
|
|
// var subtitle = node.Descendants(XMLTVConstants.Programs.ProgramSubTitle).FirstOrDefault(); |
|
|
// this.SubTitle = subtitle == null ? string.Empty : subtitle.Value; |
|
|
//} |
|
|
//catch (Exception) { this.SubTitle = string.Empty; } |
|
|
//if (!string.IsNullOrEmpty(this.SubTitle)) { xmltv_logger.Verbose.Debug.WriteLine("\tprogram_subtitle: {0}", this.SubTitle == string.Empty ? "empty" : this.SubTitle); } |
|
|
//try |
|
|
//{ |
|
|
// var description = node.Descendants(XMLTVConstants.Programs.ProgramDescription).FirstOrDefault(); |
|
|
// this.Description = description == null ? string.Empty : description.Value; ; |
|
|
//} |
|
|
//catch (Exception) { this.Description = string.Empty; } |
|
|
//if (!string.IsNullOrEmpty(this.Description)) { xmltv_logger.Verbose.Debug.WriteLine("\tprogram_description: {0}", this.Description == string.Empty ? "empty" : this.Description); } |
|
|
|
|
|
//ParseExtraData(node); |
|
|
|
|
110 |
var nodes = node.DescendantsAndSelf().ToList(); |
var nodes = node.DescendantsAndSelf().ToList(); |
111 |
foreach (var sub_node in nodes) |
foreach (var sub_node in nodes) |
112 |
{ |
{ |
201 |
if(node == null){throw new NullReferenceException("The node instance was null");} |
if(node == null){throw new NullReferenceException("The node instance was null");} |
202 |
if (node.Value != null) |
if (node.Value != null) |
203 |
{ |
{ |
204 |
instance.Properties.AddProperty(XMLTVConstants.Programs.ProgramTitle, node.Value); |
instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramTitle, node.Value); |
205 |
xmltv_logger.Verbose.Debug.WriteLine("\tprogram_title: {0}", node.Value); |
xmltv_logger.Verbose.Debug.WriteLine("\tprogram_title: {0}", node.Value); |
206 |
} |
} |
207 |
} |
} |
220 |
var start = node.Attribute(XMLTVConstants.Programs.ProgramStart); |
var start = node.Attribute(XMLTVConstants.Programs.ProgramStart); |
221 |
var t_start = start == null ? new DateTime() : ParseDate(start.Value); |
var t_start = start == null ? new DateTime() : ParseDate(start.Value); |
222 |
if (!t_start.Equals(new DateTime())) { xmltv_logger.Verbose.Debug.WriteLine("\tprogram_start: {0}", start); } |
if (!t_start.Equals(new DateTime())) { xmltv_logger.Verbose.Debug.WriteLine("\tprogram_start: {0}", start); } |
223 |
instance.Properties.AddProperty(XMLTVConstants.Programs.ProgramStart, t_start); |
instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramStart, t_start); |
224 |
|
|
225 |
var stop = node.Attribute(XMLTVConstants.Programs.ProgramStop); |
var stop = node.Attribute(XMLTVConstants.Programs.ProgramStop); |
226 |
var t_stop = stop == null ? new DateTime() : ParseDate(stop.Value); |
var t_stop = stop == null ? new DateTime() : ParseDate(stop.Value); |
227 |
if (!t_stop.Equals(new DateTime())) { xmltv_logger.Verbose.Debug.WriteLine("\tprogram_stop: {0}", stop); } |
if (!t_stop.Equals(new DateTime())) { xmltv_logger.Verbose.Debug.WriteLine("\tprogram_stop: {0}", stop); } |
228 |
instance.Properties.AddProperty(XMLTVConstants.Programs.ProgramStop, t_stop); |
instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramStop, t_stop); |
229 |
|
|
230 |
var channelid = node.Attribute(XMLTVConstants.Programs.ProgramChannelId); |
var channelid = node.Attribute(XMLTVConstants.Programs.ProgramChannelId); |
231 |
if (channelid != null) |
if (channelid != null) |
232 |
{ |
{ |
233 |
if (!string.IsNullOrEmpty(channelid.Value)) { xmltv_logger.Verbose.Debug.WriteLine("\tprogram_channelid: {0}", channelid.Value); } |
if (!string.IsNullOrEmpty(channelid.Value)) { xmltv_logger.Verbose.Debug.WriteLine("\tprogram_channelid: {0}", channelid.Value); } |
234 |
instance.Properties.AddProperty(XMLTVConstants.Programs.ProgramChannelId, channelid.Value); |
instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramChannelId, channelid.Value); |
235 |
} |
} |
236 |
|
|
237 |
} |
} |
249 |
if (node == null) { throw new NullReferenceException("The node instance was null"); } |
if (node == null) { throw new NullReferenceException("The node instance was null"); } |
250 |
if (node.Value != null) |
if (node.Value != null) |
251 |
{ |
{ |
252 |
instance.Properties.AddProperty(XMLTVConstants.Programs.ProgramSubTitle, node.Value); |
instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramSubTitle, node.Value); |
253 |
xmltv_logger.Verbose.Debug.WriteLine("\tprogram_subtitle: {0}", node.Value); |
xmltv_logger.Verbose.Debug.WriteLine("\tprogram_subtitle: {0}", node.Value); |
254 |
} |
} |
255 |
} |
} |
265 |
if (node == null) { throw new NullReferenceException("The node instance was null"); } |
if (node == null) { throw new NullReferenceException("The node instance was null"); } |
266 |
if (node.Value != null) |
if (node.Value != null) |
267 |
{ |
{ |
268 |
instance.Properties.AddProperty(XMLTVConstants.Programs.ProgramDescription, node.Value); |
instance.MetaData.AddProperty(XMLTVConstants.Programs.ProgramDescription, node.Value); |
269 |
xmltv_logger.Verbose.Debug.WriteLine("\tprogram_description: {0}", node.Value); |
xmltv_logger.Verbose.Debug.WriteLine("\tprogram_description: {0}", node.Value); |
270 |
} |
} |
271 |
} |
} |