/// <summary>
        /// Gets the template.
        /// </summary>
        /// <returns>The template.</returns>
        /// <param name="type">Type.</param>
        protected virtual IChatLineComponent GetTemplate(ChatLineType type)
        {
            if (type == ChatLineType.Incoming)
            {
                return(IncomingTemplate);
            }

            if (type == ChatLineType.Outgoing)
            {
                return(OutgoingTemplate);
            }

            return(null);
        }
    private void AddParagraph(Paragraph p, ChatLineType commentType, ChatLineType codeType)
    {
        foreach (var item in p.Items)
        {
            if (item.Kind == ParagraphItemKind.Text)
            {
                Lines.AddRange(item.Text.GetLines()
                               .Select(l => new ChatLine(commentType, l)));
            }
            else if (item.Kind == ParagraphItemKind.Code)
            {
                Lines.AddRange(item.Code.GetLines()
                               .Select(l => new ChatLine(codeType, l)));
            }
            else
            {
                Lines.Add(ChatLine.BlankLine);
                Lines.Add(ChatLine.Pause);
            }
        }

        Lines.Add(ChatLine.Divider);
        Lines.Add(ChatLine.Pause);
    }
 public ChatLine(ChatLineType type, string text)
 {
     Type = type;
     Text = text;
 }