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; }
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); } }
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); }
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); }