private SyndicationTextInput TryReadTextInputFromExtension(SyndicationElementExtensionCollection elementExtensions) { SyndicationElementExtension textInputElement = elementExtensions .Where(e => e.OuterName == Rss20Constants.TextInputTag && e.OuterNamespace == Rss20Constants.Rss20Namespace) .FirstOrDefault(); if (textInputElement == null) { return(null); } var textInput = new SyndicationTextInput(); using (XmlReader reader = textInputElement.GetReader()) { reader.ReadStartElement(); while (reader.IsStartElement()) { string name = reader.LocalName; string value = reader.ReadElementString(); switch (name) { case Rss20Constants.DescriptionTag: textInput.Description = value; break; case Rss20Constants.TitleTag: textInput.Title = value; break; case Rss20Constants.LinkTag: textInput.Link = new SyndicationLink(new Uri(value, UriKind.RelativeOrAbsolute)); break; case Rss20Constants.NameTag: textInput.Name = value; break; default: break; } } reader.ReadEndElement(); } return(IsValidTextInput(textInput) ? textInput : null); }
private static bool IsValidTextInput(SyndicationTextInput textInput) { //All textInput items are required, we check if all items were instantiated. return(textInput.Description != null && textInput.Title != null && textInput.Name != null && textInput.Link != null); }