TrakHound_UI.Timeline.TimelineTray.ReadEvent C# (CSharp) Method

ReadEvent() public method

public ReadEvent ( System.Xml.Linq.XElement row ) : TimelineEvent
row System.Xml.Linq.XElement
return TimelineEvent
        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;
        }