private TimeSpan?TryReadTimeToLiveFromExtension(SyndicationElementExtensionCollection elementExtensions) { SyndicationElementExtension timeToLiveElement = elementExtensions .FirstOrDefault(e => e.OuterName == Rss20Constants.TimeToLiveTag && e.OuterNamespace == Rss20Constants.Rss20Namespace); if (timeToLiveElement == null) { return(null); } using (XmlReader reader = timeToLiveElement.GetReader()) { string value = reader.ReadElementString(); if (int.TryParse(value, out int timeToLive)) { if (timeToLive >= 0) { return(TimeSpan.FromMinutes(timeToLive)); } else { return(null); } } else { return(null); } } }
internal SyndicationElementExtensionCollection(SyndicationElementExtensionCollection source) : base() { _buffer = source._buffer; for (int i = 0; i < source.Items.Count; ++i) { base.Add(source.Items[i]); } _initialized = true; }
internal SyndicationElementExtensionCollection(SyndicationElementExtensionCollection source) { this.buffer = source.buffer; for (int i = 0; i < source.Items.Count; i++) { base.Add(source.Items[i]); } this.initialized = true; }
internal void LoadElementExtensions(XmlReader readerOverUnparsedExtensions, int maxExtensionSize) { if (readerOverUnparsedExtensions == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("readerOverUnparsedExtensions"); } if (maxExtensionSize < 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("maxExtensionSize")); } XmlDictionaryReader r = XmlDictionaryReader.CreateDictionaryReader(readerOverUnparsedExtensions); this.elementExtensions = new SyndicationElementExtensionCollection(CreateXmlBuffer(r, maxExtensionSize)); }
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); }
internal void LoadElementExtensions(XmlReader readerOverUnparsedExtensions, int maxExtensionSize) { if (readerOverUnparsedExtensions == null) { throw new ArgumentNullException(nameof(readerOverUnparsedExtensions)); } if (maxExtensionSize < 0) { throw new ArgumentOutOfRangeException(nameof(maxExtensionSize)); } XmlDictionaryReader r = XmlDictionaryReader.CreateDictionaryReader(readerOverUnparsedExtensions); _elementExtensions = new SyndicationElementExtensionCollection(CreateXmlBuffer(r, maxExtensionSize)); }
private SyndicationLink TryReadDocumentationFromExtension(SyndicationElementExtensionCollection elementExtensions) { SyndicationElementExtension documentationElement = elementExtensions .Where(e => e.OuterName == Rss20Constants.DocumentationTag && e.OuterNamespace == Rss20Constants.Rss20Namespace) .FirstOrDefault(); if (documentationElement == null) { return(null); } using (XmlReader reader = documentationElement.GetReader()) { SyndicationLink documentation = Rss20FeedFormatter.ReadAlternateLink(reader, BaseUri, SyndicationFeedFormatter.DefaultUriParser, preserveAttributeExtensions: true); return(documentation); } }
ExtensibleSyndicationObject(ExtensibleSyndicationObject source) { if (source.attributeExtensions != null) { this.attributeExtensions = new Dictionary <XmlQualifiedName, string>(); foreach (XmlQualifiedName key in source.attributeExtensions.Keys) { this.attributeExtensions.Add(key, source.attributeExtensions[key]); } } else { this.attributeExtensions = null; } if (source.elementExtensions != null) { this.elementExtensions = new SyndicationElementExtensionCollection(source.elementExtensions); } else { this.elementExtensions = null; } }
private void TryReadSkipHoursFromExtension(SyndicationElementExtensionCollection elementExtensions, Collection <int> skipHours) { SyndicationElementExtension skipHoursElement = elementExtensions .Where(e => e.OuterName == Rss20Constants.SkipHoursTag && e.OuterNamespace == Rss20Constants.Rss20Namespace) .FirstOrDefault(); if (skipHoursElement == null) { return; } using (XmlReader reader = skipHoursElement.GetReader()) { reader.ReadStartElement(); while (reader.IsStartElement()) { if (reader.LocalName == Rss20Constants.HourTag) { string value = reader.ReadElementString(); int hour; bool parsed = int.TryParse(value, NumberStyles.Integer, NumberFormatInfo.InvariantInfo, out hour); if (!parsed || (hour < 0 || hour > 23)) { throw new FormatException(string.Format(SR.InvalidSkipHourValue, value)); } skipHours.Add(hour); } else { reader.Skip(); } } } }
private void TryReadSkipDaysFromExtension(SyndicationElementExtensionCollection elementExtensions, Collection <string> skipDays) { SyndicationElementExtension skipDaysElement = elementExtensions .Where(e => e.OuterName == Rss20Constants.SkipDaysTag && e.OuterNamespace == Rss20Constants.Rss20Namespace) .FirstOrDefault(); if (skipDaysElement == null) { return; } using (XmlReader reader = skipDaysElement.GetReader()) { reader.ReadStartElement(); while (reader.IsStartElement()) { if (reader.LocalName == Rss20Constants.DayTag) { string day = reader.ReadElementString(); //Check if the day is actually an accepted day. if (IsValidDay(day)) { skipDays.Add(day); } } else { reader.Skip(); } } reader.ReadEndElement(); } }
internal void LoadElementExtensions(XmlBuffer buffer) { this.elementExtensions = new SyndicationElementExtensionCollection(buffer); }