Sitecore.Modules.WeBlog.Pipelines.GetSummary.AutoGenerate.FindLimitIndex C# (CSharp) Method

FindLimitIndex() protected method

protected FindLimitIndex ( HtmlNode currentNode, int &currentCount, int maxCount ) : int
currentNode HtmlAgilityPack.HtmlNode
currentCount int
maxCount int
return int
        protected virtual int FindLimitIndex(HtmlNode currentNode, ref int currentCount, int maxCount)
        {
            if (currentNode.NodeType == HtmlNodeType.Text)
            {
                var prevCount = currentCount;
                currentCount += currentNode.InnerText.Length;

                if (currentCount >= maxCount)
                {
                    var extraChars = maxCount - prevCount;
                    return currentNode.StreamPosition + extraChars;
                }
            }

            if (currentNode.HasChildNodes)
            {
                foreach (var node in currentNode.ChildNodes)
                {
                    var index = FindLimitIndex(node, ref currentCount, maxCount);
                    if (index != -1)
                        return index;
                }
            }

            return -1;
        }