WebMarkupMin.Core.GenericHtmlMinifier.RemoveLastStartTagFromBuffer C# (CSharp) Метод

RemoveLastStartTagFromBuffer() приватный Метод

Removes a last start tag from the HTML minification buffer
private RemoveLastStartTagFromBuffer ( WebMarkupMin.Core.Parsers.HtmlTag startTag ) : bool
startTag WebMarkupMin.Core.Parsers.HtmlTag Start tag
Результат bool
        private bool RemoveLastStartTagFromBuffer(HtmlTag startTag)
        {
            int bufferItemCount = _buffer.Count;
            if (bufferItemCount == 0)
            {
                return false;
            }

            bool isEndTagRemoved = false;
            int lastStartTagBeginAngleBracketIndex = _buffer.LastIndexOf("<");

            if (lastStartTagBeginAngleBracketIndex != -1)
            {
                string lastTagName = _buffer[lastStartTagBeginAngleBracketIndex + 1];
                if (lastTagName.IgnoreCaseEquals(startTag.NameInLowercase))
                {
                    int lastStartTagEndAngleBracketIndex = _buffer.IndexOf(">", lastStartTagBeginAngleBracketIndex);
                    if (lastStartTagEndAngleBracketIndex != -1)
                    {
                        int lastBufferItemIndex = bufferItemCount - 1;
                        bool noMoreContent = true;
                        if (lastStartTagEndAngleBracketIndex != lastBufferItemIndex)
                        {
                            for (int bufferItemIndex = lastStartTagEndAngleBracketIndex + 1;
                                 bufferItemIndex < bufferItemCount;
                                 bufferItemIndex++)
                            {
                                if (!string.IsNullOrWhiteSpace(_buffer[bufferItemIndex]))
                                {
                                    noMoreContent = false;
                                    break;
                                }
                            }
                        }

                        if (noMoreContent)
                        {
                            _buffer.RemoveRange(lastStartTagBeginAngleBracketIndex,
                                bufferItemCount - lastStartTagBeginAngleBracketIndex);

                            isEndTagRemoved = true;
                        }
                    }
                }
            }

            return isEndTagRemoved;
        }