Exemplo n.º 1
0
        private IEnumerable <KeyValuePair <object, SyndicationItem> > ConvertDataItems(OpdsData data)
        {
            // Assuming every item is of different type.
            // PropertyAdapter should be retreived for every item.
            foreach (var item in data.Data ?? new IOpdsDataTypeHost[] { })
            {
                var accessor = AccessorFactory.GetAccessor(item);
                var dataType = TypeDetector.DetectType(item);
                if (dataType == OpdsDataType.Category)
                {
                    var syndicationItem = CreateBasicDataItems(accessor, item);
                    var navigationLink  = LinkGenerator.Generate(item, OpdsRelations.Alternate, OpdsMediaType.NavigationFeed, accessor, Names);
                    if (navigationLink != null)
                    {
                        var count = item.GetProperty(Names.Count, accessor);
                        if (count != null)
                        {
                            navigationLink.Count = Convert.ToInt32(count);
                        }
                        syndicationItem.Links.Add(navigationLink);
                    }
                    OnSyndicationItemCreated(syndicationItem, item);

                    yield return(new KeyValuePair <object, SyndicationItem>(item, syndicationItem));
                }
                else
                {
                    yield return(new KeyValuePair <object, SyndicationItem>(item, BuildEntity(data, accessor, item, dataType == OpdsDataType.Detial)));
                }
            }
        }
Exemplo n.º 2
0
        public void DetectJsonTest()
        {
            var input = @"{
       ""categories"": [
      ""Development"",
      ""VIM""
   ],
   ""date"": ""2012-04-06"",
""images"": [""site-feature-image.jpg""],
""testint"": 1,
""testbool"": false,
""title"": ""About""
}
Lorem ipsum";

            var converter    = new StringToStreamConverter(input);
            var typeDetector = new TypeDetector(new StreamReader(converter.GetStreamFromString()));

            using TextReader sr = new StringReader(input);
            var parser = new JsonParser <SinglePage>(sr, string.Empty);
            var single = parser.GetAsSinglePage();

            Assert.Equal(FrontMatterType.Json, typeDetector.GetFrontMatterType());
            Assert.Equal("About", single.Title);
            Assert.Equal("Lorem ipsum", single.Content);
        }
Exemplo n.º 3
0
        public void DetectMarkdownDocumentTest()
        {
            var input     = "Lorem ipsum";
            var converter = new StringToStreamConverter(input);

            using var sr = new StreamReader(converter.GetStreamFromString());
            var typeDetector = new TypeDetector(sr);

            Assert.Equal(FrontMatterType.MarkdownDocument, typeDetector.GetFrontMatterType());
        }
Exemplo n.º 4
0
        public void DetectHtmlDocumentTest()
        {
            var input     = @"<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
</body>
</html>";
            var converter = new StringToStreamConverter(input);

            using var sr = new StreamReader(converter.GetStreamFromString());
            var typeDetector = new TypeDetector(sr);

            Assert.Equal(FrontMatterType.HtmlDocument, typeDetector.GetFrontMatterType());
        }
Exemplo n.º 5
0
        public void DetectTomlTest()
        {
            var input = @"
+++
title =  ""About"" 
+++ 
Lorem ipsum";

            var converter    = new StringToStreamConverter(input);
            var typeDetector = new TypeDetector(new StreamReader(converter.GetStreamFromString()));

            using TextReader sr = new StringReader(input);
            var parser = new TomlParser <SinglePage>(sr, string.Empty);
            var single = parser.GetAsSinglePage();

            Assert.Equal(FrontMatterType.Toml, typeDetector.GetFrontMatterType());
            Assert.Equal("About", single.Title);
            Assert.Equal("Lorem ipsum", single.Content);
        }
        public void TestTypeParseCorrectly()
        {
            var testXml = @"
<xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName> 
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[this is a test]]></Content>
 <MsgId>1234567890123456</MsgId>
</xml>";

            using (var t = StringStream.Create(testXml))
            {
                var xml      = XDocument.Load(t.Stream);
                var detector = new TypeDetector();
                var type     = detector.Detecting(xml);

                Assert.Equal(type.MsgType, "text");
                Assert.Equal(type.EventType, null);
            }
        }