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

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

Removes a last end tag from the HTML minification buffer
private RemoveLastEndTagFromBuffer ( WebMarkupMin.Core.Parsers.HtmlTag endTag ) : void
endTag WebMarkupMin.Core.Parsers.HtmlTag End tag
Результат void
        private void RemoveLastEndTagFromBuffer(HtmlTag endTag)
        {
            int bufferItemCount = _buffer.Count;
            if (bufferItemCount == 0)
            {
                return;
            }

            int lastEndTagBeginAngleBracketIndex = _buffer.LastIndexOf("</");

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

                        if (noMoreContent)
                        {
                            int endTagLength = lastEndTagEndAngleBracketIndex - lastEndTagBeginAngleBracketIndex + 1;
                            _buffer.RemoveRange(lastEndTagBeginAngleBracketIndex, endTagLength);
                        }
                    }
                }
            }
        }