public void GetObject_XmlReader() { string xml = "<root>3</root>"; XmlReader r = XmlReader.Create(new StringReader(xml)); SyndicationElementExtension x = new SyndicationElementExtension(r); Assert.AreEqual(3, x.GetObject <int> (), "#1"); Assert.AreEqual(3, x.GetObject <int> (), "#2"); // it is VALID }
public void ConstructorXmlReader() { string xml = "<root xmlns='x'>2</root>"; XmlReader r = XmlReader.Create(new StringReader(xml)); var e = new SyndicationElementExtension(r); Assert.AreEqual("root", e.OuterName, "#1"); Assert.AreEqual("x", e.OuterNamespace, "#2"); }
public void ISerializableIsAny_XmlSerializer_OuterNameReturnsExpected() { var extensionObject = new XmlSerializabWithIsAny(); var extension = new SyndicationElementExtension(extensionObject, new XmlSerializer(typeof(XmlSerializabWithIsAny))); Assert.Equal("name", extension.OuterName); Assert.Empty(extension.OuterNamespace); Assert.NotNull(extension.GetObject <XmlSerializabWithIsAny>(new XmlSerializer(typeof(XmlSerializabWithIsAny)))); }
public void GetReader_WithReader_ReturnsExpected() { var extensionObject = new ExtensionObject { Value = 10 }; var extension = new SyndicationElementExtension(new XElement("ExtensionObject", new XElement("Value", 10)).CreateReader()); XmlReader reader = extension.GetReader(); Assert.Equal(@"<ExtensionObject><Value>10</Value></ExtensionObject>", reader.ReadOuterXml()); }
public void Ctor_Reader() { var extension = new SyndicationElementExtension(new XElement("ExtensionObject", new XElement("Value", 10)).CreateReader()); Assert.Equal("ExtensionObject", extension.OuterName); Assert.Empty(extension.OuterNamespace); Assert.Equal(0, extension.GetObject <ExtensionObject>().Value); Assert.Equal(0, extension.GetObject <ExtensionObject>(new DataContractSerializer(typeof(ExtensionObject))).Value); Assert.Equal(10, extension.GetObject <ExtensionObject>(new XmlSerializer(typeof(ExtensionObject))).Value); }
public void Insert_Invoke_Success() { var extension = new SyndicationElementExtension(new ExtensionObject { Value = 10 }); SyndicationElementExtensionCollection elementExtensions = new SyndicationCategory().ElementExtensions; elementExtensions.Insert(0, extension); Assert.Same(extension, elementExtensions[0]); }
public void GetReader_ObjectWithXmlSerializer_ReturnsExpected() { var extensionObject = new ExtensionObject() { Value = 10 }; var extension = new SyndicationElementExtension(extensionObject, new XmlSerializer(typeof(ExtensionObject))); XmlReader reader = extension.GetReader(); Assert.Equal(@"<ExtensionObject xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""><Value>10</Value></ExtensionObject>", reader.ReadOuterXml()); }
public void Ctor_DataContractExtension_XmlObjectSerializer(XmlObjectSerializer serializer) { var extensionObject = new ExtensionObject { Value = 10 }; var extension = new SyndicationElementExtension(extensionObject, serializer); Assert.Equal("ServiceElementExtensionTests.ExtensionObject", extension.OuterName); Assert.Equal("http://schemas.datacontract.org/2004/07/System.ServiceModel.Syndication.Tests", extension.OuterNamespace); Assert.Equal(10, extension.GetObject <ExtensionObject>().Value); }
public static string GetMediaVideoURL(SyndicationItem item) { string mediaVideoUrl = string.Empty; try { SyndicationElementExtensionCollection extensions = item.ElementExtensions; // Read extension items in order to find videos -> media:content. if (extensions != null && extensions.Count > 0) { // media:group & media:content's if (extensions.Count(p => p.OuterName == "group") == 1) { SyndicationElementExtension extensionGroup = extensions.First(p => p.OuterName == "group"); if (extensionGroup != null) { XNode groupNode = XDocument.ReadFrom(extensionGroup.GetReader()); XDocument doc = XDocument.Parse(groupNode.ToString()); XNamespace media = "http://search.yahoo.com/mrss/"; // Get content subitems inside group. var query = (from contentElem in doc.Descendants(media + "content") select contentElem); List <XElement> listContent = query.ToList(); if (listContent.Count > 0) { // Filter by type "video/mp4" | "video/x-ms-wmv" var videoElems = new List <XElement>(listContent.Where(c => c.Attribute("type").Value == "video/mp4" && c.Attribute("url").Value.ToUpper().Contains("HIGH"))); if (!videoElems.Any()) { videoElems = new List <XElement>(listContent.Where(c => c.Attribute("type").Value == "video/mp4")); if (!videoElems.Any()) { videoElems = new List <XElement>(listContent.Where(c => c.Attribute("type").Value == "video/x-ms-wmv")); } } if (videoElems.Any() && videoElems.First().Attribute("url") != null) { mediaVideoUrl = videoElems.First().Attribute("url").Value; } } } } } } catch (Exception ex) { Debug.WriteLine("There was an error getting media video from RSS. Error: {0}", ex); } return(mediaVideoUrl); }
/// <summary> /// Gets the XmlReader for the m:properties element under the atom:entry element /// </summary> /// <param name="item">item to read from</param> /// <returns>XmlReader for the m:properties element if found, null otherwise.</returns> private static XmlReader GetPropertiesReaderFromEntry(SyndicationItem item) { SyndicationElementExtension properties = item.ElementExtensions.Where(p => p.OuterName == XmlConstants.AtomPropertiesElementName && p.OuterNamespace == XmlConstants.DataWebMetadataNamespace).FirstOrDefault(); if (properties != null) { return(properties.GetReader()); } return(null); }
public void GetReaderAtContent() { var x = new SyndicationElementExtension(6); // premise. Assert.AreEqual("<int xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">6</int>", x.GetReader().ReadOuterXml(), "#1"); var t = new XmlSyndicationContent("text/xml", 6, (XmlObjectSerializer)null); Assert.AreEqual("<content type=\"text/xml\" xmlns=\"http://www.w3.org/2005/Atom\"><int xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">6</int></content>", t.GetReaderAtContent().ReadOuterXml(), "#2"); }
public void GetReader_ObjectWithXmlObjectSerializer_ReturnsExpected() { var extensionObject = new ExtensionObject() { Value = 10 }; var extension = new SyndicationElementExtension(extensionObject, new DataContractSerializer(typeof(ExtensionObject))); XmlReader reader = extension.GetReader(); Assert.Equal(@"<ServiceElementExtensionTests.ExtensionObject xmlns=""http://schemas.datacontract.org/2004/07/System.ServiceModel.Syndication.Tests"" xmlns:i=""http://www.w3.org/2001/XMLSchema-instance""><Value>10</Value></ServiceElementExtensionTests.ExtensionObject>", reader.ReadOuterXml()); }
public void Clone_Empty_ReturnsExpected() { var content = new SyndicationElementExtension(new ExtensionObject { Value = 10 }); var original = new XmlSyndicationContent("type", content); XmlSyndicationContent clone = Assert.IsType <XmlSyndicationContent>(original.Clone()); Assert.Empty(clone.AttributeExtensions); Assert.Same(original.Extension, clone.Extension); Assert.Equal("type", clone.Type); }
public void Ctor_XmlSyndicationContent_Empty() { var content = new SyndicationElementExtension(new ExtensionObject { Value = 10 }); var original = new XmlSyndicationContent("type", content); var clone = new XmlSyndicationContentSubclass(original); Assert.Empty(clone.AttributeExtensions); Assert.Same(original.Extension, clone.Extension); Assert.Equal("type", clone.Type); }
private static bool GetValue(SyndicationElementExtension extension, Action <JobTypes> assign) { var str = extension.GetObject <string>(); if (string.IsNullOrEmpty(str)) { return(false); } assign((JobTypes)Enum.Parse(typeof(JobTypes), str)); return(true); }
private static bool GetValue(SyndicationElementExtension extension, Action <DateTime> assign) { var str = extension.GetObject <string>(); if (string.IsNullOrEmpty(str)) { return(false); } assign(DateTimeOffset.Parse(str).ToLocalTime().DateTime); return(true); }
public void Remove_Invoke_Success() { var extension = new SyndicationElementExtension(new ExtensionObject { Value = 10 }); SyndicationElementExtensionCollection elementExtensions = new SyndicationCategory().ElementExtensions; elementExtensions.Add(extension); elementExtensions.RemoveAt(0); Assert.Equal(0, elementExtensions.Count); }
public void ItemSet_Null_ThrowsArgumentNullException() { var extension = new SyndicationElementExtension(new ExtensionObject { Value = 10 }); SyndicationElementExtensionCollection elementExtensions = new SyndicationCategory().ElementExtensions; elementExtensions.Add(new ExtensionObject { Value = 9 }); AssertExtensions.Throws <ArgumentNullException>("item", () => elementExtensions[0] = null); }
public void Ctor_ReaderNotAtStart_ReturnsExpected() { using (XmlReader reader = new XElement("parent", new XElement("ExtensionObject", new XElement("Value", 10))).CreateReader()) { reader.MoveToElement(); var extension = new SyndicationElementExtension(new XElement("ExtensionObject", new XElement("Value", 10)).CreateReader()); Assert.Equal("ExtensionObject", extension.OuterName); Assert.Empty(extension.OuterNamespace); Assert.Equal(0, extension.GetObject <ExtensionObject>().Value); Assert.Equal(0, extension.GetObject <ExtensionObject>(new DataContractSerializer(typeof(ExtensionObject))).Value); Assert.Equal(10, extension.GetObject <ExtensionObject>(new XmlSerializer(typeof(ExtensionObject))).Value); } }
public void ItemSet_Get_ReturnsExpected() { var extension = new SyndicationElementExtension(new ExtensionObject { Value = 10 }); SyndicationElementExtensionCollection elementExtensions = new SyndicationCategory().ElementExtensions; elementExtensions.Add(new ExtensionObject { Value = 9 }); elementExtensions[0] = extension; Assert.Same(extension, elementExtensions[0]); }
public void WriteTo_WithReader_ReturnsExpected() { var extension = new SyndicationElementExtension(new XElement("ExtensionObject", new XElement("Value", 10)).CreateReader()); using (var stringWriter = new StringWriter()) { using (var writer = new XmlTextWriter(stringWriter)) { extension.WriteTo(writer); } Assert.Equal(@"<ExtensionObject><Value>10</Value></ExtensionObject>", stringWriter.ToString()); } }
static string ExtensionToString(SyndicationElementExtension extension) { StringBuilder sb = new StringBuilder(); XmlWriterSettings xws = new XmlWriterSettings(); xws.ConformanceLevel = ConformanceLevel.Fragment; xws.Indent = true; xws.Encoding = Encoding.ASCII; XmlWriter xw = XmlWriter.Create(sb, xws); XmlDictionaryWriter xdw = XmlDictionaryWriter.CreateDictionaryWriter(xw); extension.WriteTo(xdw); xdw.Close(); return(sb.ToString()); }
/// <summary> /// Gets the inline count within a feed /// </summary> /// <param name="feed">The feed</param> /// <returns>The inline count, or null if none exists</returns> private static long?GetInlineCount(SyndicationFeed feed) { SyndicationElementExtension countElementExtension = feed.ElementExtensions.SingleOrDefault(extension => extension.OuterName.Equals("count", StringComparison.OrdinalIgnoreCase) && extension.OuterNamespace.Equals(odataMetaXmlNs)); if (countElementExtension != null) { XElement countElement = (XElement)XNode.ReadFrom(countElementExtension.GetReader()); return(XmlConvert.ToInt64(countElement.Value)); } else { return(null); } }
public void Ctor_Type_SyndicationElementExtension(string type) { var extension = new SyndicationElementExtension(new ExtensionObject { Value = 10 }); var content = new XmlSyndicationContent(type, extension); Assert.Empty(content.AttributeExtensions); Assert.Equal(string.IsNullOrEmpty(type) ? "text/xml" : type, content.Type); Assert.Same(extension, content.Extension); Assert.Equal(10, content.ReadContent <ExtensionObject>().Value); Assert.Equal(10, content.ReadContent <ExtensionObject>(new DataContractSerializer(typeof(ExtensionObject))).Value); Assert.Equal(10, content.ReadContent <ExtensionObject>((XmlObjectSerializer)null).Value); Assert.Equal(10, content.ReadContent <ExtensionObject>(new XmlSerializer(typeof(ExtensionObject))).Value); Assert.Equal(10, content.ReadContent <ExtensionObject>((XmlSerializer)null).Value); }
public static TimeSpan ReadDuration(SyndicationElementExtension ele) { var ret = new TimeSpan(); var reader = ele.GetReader(); reader.Read(); if (!string.IsNullOrWhiteSpace(reader.Value)) { if (TimeSpan.TryParse(reader.Value, out ret)) { return(ret); } } return(ret); }
public void WriteToTwice_Reader() { string xml = "<root><child /><child2 /></root>"; StringWriter sw = new StringWriter(); using (XmlWriter w = GetWriter(sw)) { XmlReader r = XmlReader.Create(new StringReader(xml)); r.Read(); r.Read(); // at child SyndicationElementExtension x = new SyndicationElementExtension(r); w.WriteStartElement("root"); x.WriteTo(w); x.WriteTo(w); // it is VALID. w.WriteEndElement(); } Assert.AreEqual("<root><child></child><child></child></root>", sw.ToString()); }
public void WriteTo_ObjectWithXmlSerializer_ReturnsExpected() { var extensionObject = new ExtensionObject { Value = 10 }; var extension = new SyndicationElementExtension(extensionObject, new XmlSerializer(typeof(ExtensionObject))); using (var stringWriter = new StringWriter()) { using (var writer = new XmlTextWriter(stringWriter)) { extension.WriteTo(writer); } Assert.Equal(@"<?xml version=""1.0"" encoding=""utf-16""?><ExtensionObject xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""><Value>10</Value></ExtensionObject>", stringWriter.ToString()); } }
public void WriteTo_ObjectWithXmlObjectSerializer_ReturnsExpected() { var extensionObject = new ExtensionObject { Value = 10 }; var extension = new SyndicationElementExtension(extensionObject, new DataContractSerializer(typeof(ExtensionObject))); using (var stringWriter = new StringWriter()) { using (var writer = new XmlTextWriter(stringWriter)) { extension.WriteTo(writer); } Assert.Equal(@"<ServiceElementExtensionTests.ExtensionObject xmlns:i=""http://www.w3.org/2001/XMLSchema-instance"" xmlns=""http://schemas.datacontract.org/2004/07/System.ServiceModel.Syndication.Tests""><Value>10</Value></ServiceElementExtensionTests.ExtensionObject>", stringWriter.ToString()); } }
public void Ctor_XmlSyndicationContent_Full() { var content = new SyndicationElementExtension(new ExtensionObject { Value = 10 }); var original = new XmlSyndicationContent("type", content); original.AttributeExtensions.Add(new XmlQualifiedName("name"), "value"); var clone = new XmlSyndicationContentSubclass(original); Assert.NotSame(clone.AttributeExtensions, original.AttributeExtensions); Assert.Equal(1, clone.AttributeExtensions.Count); Assert.Equal("value", clone.AttributeExtensions[new XmlQualifiedName("name")]); Assert.Same(original.Extension, clone.Extension); Assert.Equal("type", clone.Type); }
public void Clone_Full_ReturnsExpected() { var content = new SyndicationElementExtension(new ExtensionObject { Value = 10 }); var original = new XmlSyndicationContent("type", content); original.AttributeExtensions.Add(new XmlQualifiedName("name"), "value"); XmlSyndicationContent clone = Assert.IsType <XmlSyndicationContent>(original.Clone()); Assert.NotSame(clone.AttributeExtensions, original.AttributeExtensions); Assert.Equal(1, clone.AttributeExtensions.Count); Assert.Equal("value", clone.AttributeExtensions[new XmlQualifiedName("name")]); Assert.Same(original.Extension, clone.Extension); Assert.Equal("type", clone.Type); }
public static Dictionary<string, object> SyndicationElementExtensionsToDictionary(SyndicationElementExtension element) { string prefix = ""; Dictionary<string,object> properties = new Dictionary<string, object>(); XPathDocument x = new XPathDocument(element.GetReader()); XPathNavigator nav = x.CreateNavigator(); nav.MoveToRoot(); var childnodes = nav.SelectChildren(XPathNodeType.Element); XPathNavigator prev = null; while (childnodes.MoveNext()) { var childnode = childnodes.Current; XmlNamespaceManager xnsm = new XmlNamespaceManager(childnode.NameTable); prefix = childnode.Prefix + ":"; try { properties.Add(prefix + childnode.LocalName, ImportNode(childnode.Clone())); } catch (ArgumentException) { if (properties.ContainsKey(prefix + childnode.LocalName) && properties[prefix + childnode.LocalName] is object[]) { object[] array = (object[])properties[prefix + childnode.LocalName]; List<object> list = array.ToList(); list.Add(ImportNode(childnode.Clone())); properties[prefix + childnode.LocalName] = list.ToArray(); } else { List<object> list = new List<object>(); list.Add(ImportNode(childnode.Clone())); properties[prefix + childnode.LocalName] = list.ToArray(); } } prev = childnode.Clone(); } return properties; }
public static SyndicationElementExtension GenerateOrbitsExtension(Terradue.OpenSearch.SciHub.Data.Earth_Explorer_File file) { SyndicationElementExtension extension = new SyndicationElementExtension(GetS1OrbitsFromEE(file), Terradue.Metadata.EarthObservation.Extra.orbitListType.OrbitsSerializer); return extension; }