DeduplicateMaintenanceTags() public static method

Deduplicates multiple maintenance tags. Uses earliest of date parameters, merges all other parameters. Does nothing if parameter values other than date parameter are conflicting
public static DeduplicateMaintenanceTags ( List tags ) : List
tags List Maintenance tags list
return List
        /// <summary>
        /// Merge multiple {{multiple issues}} templates in zeroth section into one
        /// </summary>
        /// <returns>The M.</returns>
        /// <param name="articleText">Article text.</param>
        private string MergeMultipleMI(string articleText)
        {
            string originalArticleText = articleText, mi = "";

            articleText = WikiRegexes.MultipleIssues.Replace(articleText, m =>
            {
                string tags = Tools.GetTemplateArgument(m.Value, 1);

                // do not process if a MI section template
                if (tags.Contains("{{") || tags.Equals(""))
                {
                    mi += tags;
                    return("");
                }

                return(m.Value);
            });

            // do nothing if found a MI section template
            if (WikiRegexes.MultipleIssues.IsMatch(articleText))
            {
                return(originalArticleText);
            }

            // extract and de-duplicate tags
            List <string> miTags = Parsers.DeduplicateMaintenanceTags((from Match m in WikiRegexes.NestedTemplates.Matches(mi)
                                                                       select m.Value).ToList());

            mi = string.Join("\r\n", miTags.ToArray());

            return(@"{{Multiple issues|" + "\r\n" + mi + "\r\n" + @"}}" + articleText);
        }
        /// <summary>
        /// Deduplicates tags in multipleissues template calls (not section templates)
        /// </summary>
        /// <returns>The revised multipleissues template call </returns>
        /// <param name="m"></param>
        private string MultipleIssuesDeDupe(Match m)
        {
            string newValue = m.Value;

            string tags = Tools.GetTemplateArgument(newValue, 1);

            List <string> tagValues = Parsers.DeduplicateMaintenanceTags((from Match n in WikiRegexes.NestedTemplates.Matches(tags)
                                                                          select n.Value).ToList());

            string newTags = string.Join("\r\n", tagValues.ToArray());

            // only make change if some duplicate templates removed
            if (Regex.Matches(newTags, "{{").Count < Regex.Matches(tags, "{{").Count)
            {
                newValue = newValue.Replace(tags, newTags);
            }

            return(newValue);
        }