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

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

Checks whether remove an the optional end tag
private CanRemoveOptionalEndTagByNextTag ( WebMarkupMin.Core.Parsers.HtmlTag optionalEndTag, WebMarkupMin.Core.Parsers.HtmlTag nextTag ) : bool
optionalEndTag WebMarkupMin.Core.Parsers.HtmlTag Optional end tag
nextTag WebMarkupMin.Core.Parsers.HtmlTag Next tag
Результат bool
        private bool CanRemoveOptionalEndTagByNextTag(HtmlTag optionalEndTag, HtmlTag nextTag)
        {
            string optionalEndTagNameInLowercase = optionalEndTag.NameInLowercase;
            if (_settings.PreservableOptionalTagCollection.Contains(optionalEndTagNameInLowercase))
            {
                return false;
            }

            string nextTagNameInLowercase = nextTag.NameInLowercase;
            bool canRemove;

            switch (optionalEndTagNameInLowercase)
            {
                case "p":
                    canRemove = _tagsFollowingAfterParagraphOptionalEndTag.Contains(nextTagNameInLowercase);
                    break;
                case "li":
                    canRemove = nextTagNameInLowercase == "li";
                    break;
                case "thead":
                case "tbody":
                    canRemove = nextTagNameInLowercase == "tbody" || nextTagNameInLowercase == "tfoot";
                    break;
                case "tfoot":
                    canRemove = nextTagNameInLowercase == "tbody";
                    break;
                case "tr":
                    canRemove = nextTagNameInLowercase == "tr";
                    break;
                case "td":
                case "th":
                    canRemove = nextTagNameInLowercase == "td" || nextTagNameInLowercase == "th";
                    break;
                case "option":
                    canRemove = nextTagNameInLowercase == "option" || nextTagNameInLowercase == "optgroup";
                    break;
                case "optgroup":
                    canRemove = nextTagNameInLowercase == "optgroup";
                    break;
                case "dt":
                case "dd":
                    canRemove = nextTagNameInLowercase == "dt" || nextTagNameInLowercase == "dd";
                    break;
                case "rt":
                case "rp":
                case "rb":
                    canRemove = nextTagNameInLowercase == "rt" || nextTagNameInLowercase == "rp"
                        || nextTagNameInLowercase == "rb" || nextTagNameInLowercase == "rtc"
                        ;
                    break;
                case "rtc":
                    canRemove = nextTagNameInLowercase == "rp" || nextTagNameInLowercase == "rb"
                        || nextTagNameInLowercase == "rtc"
                        ;
                    break;
                default:
                    canRemove = false;
                    break;
            }

            return canRemove;
        }