Example #1
0
        public static void Snippet13()
        {
            // <Snippet13>
            Atom10ItemFormatter itemFormatter = new Atom10ItemFormatter();
            XmlReader           atomReader    = XmlReader.Create("http://Contoso/Feeds/MyFeed/Item");

            if (itemFormatter.CanRead(atomReader))
            {
                itemFormatter.ReadFrom(atomReader);
                atomReader.Close();
            }
            // </Snippet13>
        }
Example #2
0
        /// <summary>
        /// Creates the atom entry document.
        /// </summary>
        /// <param name="atomXmlReader">The atom XML reader.</param>
        private void CreateAtomEntryDocument(XmlReader atomXmlReader)
        {
            Atom10ItemFormatter formatter = new Atom10ItemFormatter();
            bool isValidAtomEntry         = formatter.CanRead(atomXmlReader);

            if (isValidAtomEntry)
            {
                AtomDocument = SyndicationItem.Load(atomXmlReader);
                bool isValidAtomPubEntry = null != AtomDocument.Id &&
                                           DateTimeOffset.MinValue != AtomDocument.LastUpdatedTime &&
                                           null != AtomDocument.Title &&
                                           null != AtomDocument.Authors &&
                                           0 < AtomDocument.Authors.Count;

                if (isValidAtomPubEntry)
                {
                    if (null == AtomDocument.Content)
                    {
                        isValidAtomPubEntry = AtomDocument.Links.Where(atomLink => string.Compare(atomLink.RelationshipType, "alternate", StringComparison.OrdinalIgnoreCase) == 0)
                                              .Count() == 1;
                    }
                    else if (!(AtomDocument.Content is TextSyndicationContent))
                    {
                        isValidAtomPubEntry = null != AtomDocument.Summary;
                    }
                }

                if (!isValidAtomPubEntry)
                {
                    throw new ArgumentException(Resources.ATOMPUB_INVALID_ATOMENTRYDOCUMENT, "atomXmlReader");
                }
                else
                {
                    SetProperties();
                }
            }
            else
            {
                throw new ArgumentException(Resources.ATOMPUB_INVALID_ATOMENTRYDOCUMENT, "atomXmlReader");
            }
        }
Example #3
0
        public void CanRead()
        {
            Atom10ItemFormatter f = new Atom10ItemFormatter();

            Assert.IsFalse(f.CanRead(CreateReader("<feed xmlns='http://www.w3.org/2005/Atom'>")), "#1");
            Assert.IsTrue(f.CanRead(CreateReader("<entry xmlns='http://www.w3.org/2005/Atom'>")), "#2");
            Assert.IsFalse(f.CanRead(CreateReader("<entry>")), "#3");
            Assert.IsFalse(f.CanRead(CreateReader("<item>")), "#4");
            Assert.IsFalse(f.CanRead(CreateReader("<hoge xmlns='http://www.w3.org/2005/Atom'>")), "#5");
            XmlReader r = CreateReader("<entry xmlns='http://www.w3.org/2005/Atom'></entry>");

            r.Read();              // element
            r.Read();              // endelement
            Assert.IsFalse(f.CanRead(r), "#6");

            r = CreateReader("<entry xmlns='http://www.w3.org/2005/Atom'><title>test</title></entry>");
            r.Read();              // item
            r.Read();              // title
            Assert.IsFalse(f.CanRead(r), "#7");
        }