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))));
        }
Exemple #4
0
        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]);
        }
Exemple #7
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());
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        /// <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);
        }
Exemple #11
0
        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");
        }
Exemple #12
0
        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);
        }
Exemple #15
0
        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);
        }
Exemple #16
0
        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);
        }
Exemple #19
0
 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]);
        }
Exemple #21
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());
        }
Exemple #23
0
        /// <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);
        }
Exemple #25
0
        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());
        }
Exemple #27
0
        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());
            }
        }
Exemple #28
0
        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;
        }