public AtomEventPageReader(IAtomFeed atomFeed, AtomFile file, DateTime startTime, DateTime endTime) { m_AtomFeed = atomFeed; m_AtomFile = file; m_NextPageLink = m_AtomFile.EventsLink; m_StartTime = startTime; m_EndTime = endTime; }
/// <summary> /// Parses the specified reader. /// </summary> /// <param name="reader">The reader.</param> /// <returns></returns> public override T Parse <T>(System.Xml.XmlReader reader) { IAtomFeed ret = (IAtomFeed) new AtomFeed(); reader.Read(); bool readContent = false; while (readContent || reader.Read()) { readContent = false; if (reader.NodeType == XmlNodeType.Element) { readContent = true; switch (reader.Name) { case "id": ret.FeedUri = CachedPropertiesProvider.ConvertToUri(reader.ReadElementContentAsString(), reader.BaseURI); break; case "title": ret.Title = reader.ReadElementContentAsString(); break; case "updated": ret.LastUpdated = CachedPropertiesProvider.ConvertToTzDateTime(reader.ReadElementContentAsString()); break; case "generator": using (XmlReader subReader = reader.ReadSubtree()) { ret.Generator = ConvertToIAtomGenerator(subReader); } if (reader.IsEmptyElement) { readContent = false; } break; case "author": using (XmlReader subReader = reader.ReadSubtree()) { ret.Authors.Add(ConvertToIAtomPerson(subReader)); } if (reader.IsEmptyElement) { readContent = false; } break; case "link": using (XmlReader subReader = reader.ReadSubtree()) { ret.Links.Add(ConvertToIAtomLink(subReader)); } if (reader.IsEmptyElement) { readContent = false; } break; case "category": using (XmlReader subReader = reader.ReadSubtree()) { ret.Categories.Add(ConvertToIAtomCategory(subReader)); } if (reader.IsEmptyElement) { readContent = false; } break; case "entry": using (XmlReader subReader = reader.ReadSubtree()) { ret.Items.Add(ParseItem(subReader)); } if (reader.IsEmptyElement) { readContent = false; } break; case "contributor": using (XmlReader subReader = reader.ReadSubtree()) { ret.Contributors.Add(ConvertToIAtomPerson(subReader)); } if (reader.IsEmptyElement) { readContent = false; } break; case "logo": ret.Logo = reader.ReadElementContentAsString(); break; case "icon": ret.Icon = reader.ReadElementContentAsString(); break; case "rights": using (XmlReader subReader = reader.ReadSubtree()) { ret.Rights = ConvertToIAtomText(subReader); } if (reader.IsEmptyElement) { readContent = false; } break; case "subtitle": using (XmlReader subReader = reader.ReadSubtree()) { ret.Subtitle = ConvertToIAtomText(subReader); } if (reader.IsEmptyElement) { readContent = false; } break; default: UnhandledElement(ret, reader); break; } } } reader.Close(); return((T)ret); }