/// <summary> /// Self initializing constructor. /// </summary> /// <param name="aliasMask">Template String used like the String.Format(); method in c#.</param> /// <param name="titleCase">Should the Name be converted to Title Case?</param> /// <param name="autoNumberDuplicates">When true duplicate aliases are auto numbered.</param> /// <param name="preserveCustomAliases">When true, any alias not matching the given mask will be ignored</param> /// <param name="useShorthand">When true, the shorthand syntax is used</param> /// <param name="spaceHandler"> How should spaces be handled?</param> public Settings( string aliasMask = "{0}.{1}", bool titleCase = true, bool autoNumberDuplicates = true, bool preserveCustomAliases = true, bool useShorthand = false, SpaceHandling spaceHandler = SpaceHandling.Snake_Case ) { AliasMask = aliasMask; AutoNumberDuplicates = autoNumberDuplicates; PreserveCustomAliases = preserveCustomAliases; SpaceHandler = spaceHandler; TitleCase = titleCase; UseShorthand = useShorthand; }
public static bool GetLocallyUniqueItemName(Item item, string disallowed, SpaceHandling removeSpaces, CaseHandling forceLowercase, bool replaceDiacritics, out string uniqueName) { var newName = GetNewItemName(item.Name, disallowed, removeSpaces, forceLowercase, replaceDiacritics); var finalName = newName; var nameSuffix = 0; while (NameIsTakenBySibling(item, finalName)) { nameSuffix++; finalName = newName + "-" + nameSuffix.ToString(CultureInfo.InvariantCulture); } uniqueName = finalName; return true; }
public static bool GetLocallyUniqueItemName(Item item, string disallowed, SpaceHandling removeSpaces, CaseHandling forceLowercase, bool replaceDiacritics, out string uniqueName) { var newName = GetNewItemName(item.Name, disallowed, removeSpaces, forceLowercase, replaceDiacritics); var finalName = newName; var nameSuffix = 0; while (NameIsTakenBySibling(item, finalName)) { nameSuffix++; finalName = newName + "-" + nameSuffix.ToString(CultureInfo.InvariantCulture); } uniqueName = finalName; return(true); }
/// <summary> /// Actual method where string manipulation takes place. /// </summary> /// <param name="oldName">The original name of the target Item.</param> /// <param name="disallowed">Regex string of characters that should be stripped from the name.</param> /// <param name="removeSpaces">Desired behavior for space replacement in the name.</param> /// <param name="forceLowercase">Desired behavior for mixed-case names.</param> /// <param name="replaceDiacritics">Desired behavior for handling of diacritics in text.</param> /// <returns>The modified string to use as the name.</returns> public static string GetNewItemName(string oldName, string disallowed, SpaceHandling removeSpaces, CaseHandling forceLowercase, bool replaceDiacritics) { var spaceReplacer = string.Empty; if (removeSpaces == SpaceHandling.UseDash) { spaceReplacer = "-"; } var name = oldName.Replace(" ", spaceReplacer); name = Regex.Replace(name, disallowed, string.Empty); if (replaceDiacritics) { name = ReplaceDiacritics(name); } return(forceLowercase == CaseHandling.ForceLowercase ? name.ToLower(CultureInfo.InvariantCulture) : name); }
/// <summary> /// Actual method where string manipulation takes place. /// </summary> /// <param name="oldName">The original name of the target Item.</param> /// <param name="disallowed">Regex string of characters that should be stripped from the name.</param> /// <param name="removeSpaces">Desired behavior for space replacement in the name.</param> /// <param name="forceLowercase">Desired behavior for mixed-case names.</param> /// <param name="replaceDiacritics">Desired behavior for handling of diacritics in text.</param> /// <returns>The modified string to use as the name.</returns> public static string GetNewItemName(string oldName, string disallowed, SpaceHandling removeSpaces, CaseHandling forceLowercase, bool replaceDiacritics) { var spaceReplacer = string.Empty; if (removeSpaces == SpaceHandling.UseDash) { spaceReplacer = "-"; } var name = oldName.Replace(" ", spaceReplacer); name = Regex.Replace(name, disallowed, string.Empty); if (replaceDiacritics) { name = ReplaceDiacritics(name); } return forceLowercase == CaseHandling.ForceLowercase ? name.ToLower(CultureInfo.InvariantCulture) : name; }