public virtual TimelineEvent ReadEvent(
XElement row
)
{
TimelineEvent e;
string start;
string end;
string isDuration;
string rowOverride;
string widthOverride;
string heightOverride;
string topOverride;
rowOverride = GetAttribute(row.Attribute("rowOverride"));
widthOverride = GetAttribute(row.Attribute("WidthOverride"));
heightOverride = GetAttribute(row.Attribute("HeightOverride"));
topOverride = GetAttribute(row.Attribute("TopOverride"));
e = CreateEvent();
e.Id = GetAttribute(row.Attribute("id"));
e.Title = GetAttribute(row.Attribute("title"));
e.EventColor = GetAttribute(row.Attribute("color"));
e.Link = GetAttribute(row.Attribute("link"));
e.EventImage = GetAttribute(row.Attribute("image"));
e.TeaserEventImage = GetAttribute(row.Attribute("teaserimage"));
e.Description = GetContent(row);
start = GetAttribute(row.Attribute("start"));
end = GetAttribute(row.Attribute("end"));
isDuration = GetAttribute(row.Attribute("isDuration"));
e.RowOverride = rowOverride.Length == 0 ? -1 : int.Parse(rowOverride);
e.WidthOverride = widthOverride.Length == 0 ? -1.0 : double.Parse(widthOverride);
e.HeightOverride = heightOverride.Length == 0 ? -1.0 : double.Parse(heightOverride);
e.TopOverride = topOverride.Length == 0 ? -1.0 : double.Parse(topOverride);
if (start.Length == 4)
{
e.StartDate = new DateTime(int.Parse(start), 1, 1);
}
else
{
e.StartDate = DateTime.Parse(start, DateTimeConverter.CultureInfo);
}
if (String.Compare(isDuration, "true", StringComparison.InvariantCultureIgnoreCase) == 0)
{
e.IsDuration = true;
if (end.Length == 4)
{
e.EndDate = new DateTime(int.Parse(end), 1, 1);
}
else if (end.Length < 4)
{
e.EndDate = e.StartDate;
}
else
{
e.EndDate = DateTime.Parse(end, DateTimeConverter.CultureInfo);
}
}
else
{
e.IsDuration = false;
e.EndDate = e.StartDate;
}
return e;
}