Ejemplo n.º 1
0
        private static void ProcessNodeType(List <List <string> > returnList, RelatedContent content)
        {
            var list = new List <string>();

            switch (content.NodeType)
            {
            case ParagraphNodeTypeKey:
            {
                foreach (var innerContent in content.Content)
                {
                    if (innerContent.NodeType.Equals(TextNodeTypeKey))
                    {
                        var fontEffect = innerContent.Marks?.FirstOrDefault()?.Type;
                        list.Add(
                            $"{(string.IsNullOrWhiteSpace(fontEffect) ? "" : $"[{fontEffect}]")}{innerContent.Value}");
                    }

                    if (innerContent.NodeType.Equals(HyperLinkNodeTypeKey))
                    {
                        list.Add(
                            $"[{innerContent.Content.FirstOrDefault().Value}]({innerContent.Data.Uri})");
                    }
                }

                break;
            }
Ejemplo n.º 2
0
        private static void ProcessListItemRelatedContentForGet(RelatedContent relatedContent, List <List <string> > returnList)
        {
            if (relatedContent?.Content == null)
            {
                return;
            }

            foreach (var content in relatedContent.Content)
            {
                switch (content.NodeType)
                {
                case ParagraphNodeTypeKey:
                case TextNodeTypeKey:
                    // do something
                    goto case HyperLinkNodeTypeKey;

                case HyperLinkNodeTypeKey:
                    // do something else
                    ProcessNodeType(returnList, content);
                    break;
                }

                //ProcessNodeType(returnList, content);
            }
        }
Ejemplo n.º 3
0
        public void Test_01_Multipart_RelatedContent()
        {
            object Decoded = this.Decode("6a00b78b-ebb7-4da7-a8cd-65dd09d3ac59");

            RelatedContent RelatedContent = Decoded as RelatedContent;

            Assert.IsNotNull(RelatedContent);
            Assert.AreEqual(2, RelatedContent.Content.Length);

            ContentAlternatives Alternatives = RelatedContent.Content[0].Decoded as ContentAlternatives;

            Assert.IsNotNull(Alternatives);
            Assert.IsTrue(RelatedContent.Content[1].Decoded is SkiaSharp.SKImage);
            File.WriteAllBytes("Data\\" + RelatedContent.Content[1].FileName, RelatedContent.Content[1].TransferDecoded ?? RelatedContent.Content[1].Raw);

            Assert.AreEqual(2, Alternatives.Content.Length);
            string PlainText = Alternatives.Content[0].Decoded as string;

            Assert.IsNotNull(PlainText);
            Console.Out.WriteLine(PlainText);
            Console.Out.WriteLine();

            HtmlDocument Html = Alternatives.Content[1].Decoded as HtmlDocument;

            Assert.IsNotNull(Html);
            Console.Out.WriteLine(Html.HtmlText);
            Console.Out.WriteLine();
        }
        //*************************************************************
        // Please don't do this, this is just for demo
        // In a real world situation, logic should not be
        // in the controller and if you do this a poor kitten dies
        //*************************************************************

        private RelatedContent GetRelatedArticles(IRelatedItemConfiguration configItem)
        {
            RelatedContent viewModel = new RelatedContent(configItem, null);

            if (configItem.FilterRoot != null)
            {
                foreach (var item in configItem.FilterRoot.Children)
                {
                    if (item.TemplateName == "ArticlePage")
                    {
                        viewModel.RelatedItems.Add(item);
                    }
                }
            }

            return(viewModel);
        }
Ejemplo n.º 5
0
        public void Test_02_Multipart_MixedContent()
        {
            object Decoded = this.Decode("0b9e5696-c32a-4418-a246-babb188e5beb");

            MixedContent MixedContent = Decoded as MixedContent;

            Assert.IsNotNull(MixedContent);
            Assert.AreEqual(3, MixedContent.Content.Length);

            RelatedContent RelatedContent = MixedContent.Content[0].Decoded as RelatedContent;

            Assert.IsNotNull(RelatedContent);
            Assert.AreEqual(2, RelatedContent.Content.Length);

            ContentAlternatives Alternatives = RelatedContent.Content[0].Decoded as ContentAlternatives;

            Assert.IsNotNull(Alternatives);
            Assert.IsTrue(RelatedContent.Content[1].Decoded is SkiaSharp.SKImage);
            File.WriteAllBytes("Data\\" + RelatedContent.Content[1].FileName, RelatedContent.Content[1].TransferDecoded ?? RelatedContent.Content[1].Raw);

            Assert.AreEqual(2, Alternatives.Content.Length);
            string PlainText = Alternatives.Content[0].Decoded as string;

            Assert.IsNotNull(PlainText);
            Console.Out.WriteLine(PlainText);
            Console.Out.WriteLine();

            HtmlDocument Html = Alternatives.Content[1].Decoded as HtmlDocument;

            Assert.IsNotNull(Html);
            Console.Out.WriteLine(Html.HtmlText);
            Console.Out.WriteLine();

            string Attachment1 = MixedContent.Content[1].Decoded as string;

            Assert.IsNotNull(Attachment1);
            Console.Out.WriteLine(Attachment1);
            Console.Out.WriteLine();

            XmlDocument Attachment2 = MixedContent.Content[2].Decoded as XmlDocument;

            Assert.IsNotNull(Attachment2);
            Console.Out.WriteLine(Attachment2.OuterXml);
            Console.Out.WriteLine();
        }
        private RelatedContent GetRelatedTaggedContent(IRelatedItemConfiguration configItem, IRelatedContentFilter parameters)
        {
            int            count     = 0;
            RelatedContent viewModel = new RelatedContent(configItem, parameters);

            foreach (var item in configItem.FilterRoot.Children)
            {
                if (count == parameters.DisplayCount)
                {
                    break;
                }

                if (parameters.Tags.Select(x => x.Text).Intersect(item.ProductTags.Select(x => x.Text)).Any())
                {
                    viewModel.RelatedItems.Add(item);
                    count++;
                }
            }

            return(viewModel);
        }