示例#1
0
 private static string[] FlattenExplanation(Explanation.Types.Sense sense)
 {
     return((new string[] { sense.Text })
            .Concat(sense.ChildSenses
                    .SelectMany(s => FlattenExplanation(s)))
            .ToArray());
 }
示例#2
0
        public RichTextNode ToRichTextNode(Explanation.Types.Sense sense, string currentWord = "~")
        {
            var output = new RichTextNode()
            {
                VerticalContainer = new RichTextNode.Types.VerticalContainerNode()
                {
                },
                Styles = { "sense" }
            };

            if (!string.IsNullOrWhiteSpace(sense.Text))
            {
                output.VerticalContainer.Children.Add(SimpleTextWithOuterStyles(
                                                          zc.tM(MaybeAddPeriod(sense.Text)),
                                                          new string[] { "sense" }));
            }
            if (sense.Examples.Count() > 0)
            {
                output.VerticalContainer.Children.Add(
                    new RichTextNode()
                {
                    List = new RichTextNode.Types.ListNode()
                    {
                        Children = { sense.Examples.Select(ex =>
                                                           ToRichTextNode(ex, currentWord)
                                                           ) }
                    },
                    Styles = { "examples-list" }
                }
                    );
            }
            if (sense.ChildSenses.Count() > 0)
            {
                output.VerticalContainer.Children.Add(
                    new RichTextNode()
                {
                    List = new RichTextNode.Types.ListNode()
                    {
                        Ordered  = true,
                        Children = { sense.ChildSenses.Select(c =>
                                                              ToRichTextNode(c, currentWord)
                                                              ) }
                    }
                }
                    );
            }
            return(output);
        }