private static void FixRootCategoryUrlName(Document sender, Document[] docs, string propertyName) { var urlName = sender.getProperty(propertyName).Value.ToString(); if (docs.Any(x => urlName == x.Text)) { int count = 1; var existingRenames = docs.Where(x => x.Text.StartsWith(urlName)).Select(x => x.Text).Select(x => Regex.Match(x, urlName + @" [(](\d)[)]").Groups[1].Value).Select(x => { int i; int.TryParse(x, out i); return i; }); if (existingRenames.Any()) { count = existingRenames.Max() + 1; } sender.SetProperty(propertyName, urlName + " (" + count + ")"); } }