/// <summary> /// Gets a random identifier based on the specified template. /// </summary> /// <param name="template">The template.</param> /// <param name="order">The order.</param> /// <param name="separator">The separator.</param> /// <param name="forceSingleLetter">if set to <c>true</c> [force single letter].</param> /// <param name="lengthRestriction">The length restriction.</param> /// <returns>System.String.</returns> /// <exception cref="ArgumentOutOfRangeException">template - null</exception> public string Get(IdentifierTemplate template, NameOrderingStyle order = DefaultOrderStyle, string separator = " ", bool forceSingleLetter = false, int lengthRestriction = 0) { switch (template) { case IdentifierTemplate.AnyTwoComponents: return(this.GetRandomTwo(order, separator, forceSingleLetter, lengthRestriction)); case IdentifierTemplate.AnyThreeComponents: return(this.Get(this.GetRandomAdjective() | this.GetRandomNoun() | IdentifierComponents.FirstName, order, separator, forceSingleLetter, lengthRestriction)); case IdentifierTemplate.BobTheBuilder: return(this.Get(IdentifierComponents.Profession | IdentifierComponents.FirstName, order, separator, forceSingleLetter, lengthRestriction)); case IdentifierTemplate.PeppaPig: return(this.Get(IdentifierComponents.Animal | IdentifierComponents.FirstName, order, separator, forceSingleLetter, lengthRestriction)); case IdentifierTemplate.SilentBob: return(this.Get(IdentifierComponents.Adjective | IdentifierComponents.FirstName, order, separator, forceSingleLetter, lengthRestriction)); case IdentifierTemplate.GitHub: return(this.Get(IdentifierComponents.Adjective | IdentifierComponents.Noun, order, separator, forceSingleLetter, lengthRestriction)); default: throw new ArgumentOutOfRangeException(nameof(template), template, null); } }
/// <summary> /// Gets a random identifier based on the specified template. /// <para>Bear in mind that enumerating the result set multiple times will yield different results</para> /// </summary> /// <param name="numberOfNamesToReturn"></param> /// <param name="template">The template.</param> /// <param name="order">The order.</param> /// <param name="separator">The separator.</param> /// <param name="forceSingleLetter">if set to <c>true</c> [force single letter].</param> /// <param name="lengthRestriction">The length restriction.</param> /// <returns>System.String.</returns> /// <exception cref="ArgumentOutOfRangeException">template - null</exception> public IEnumerable <string> Get(int numberOfNamesToReturn, IdentifierTemplate template, NameOrderingStyle order = DefaultOrderStyle, string separator = " ", bool forceSingleLetter = false, int lengthRestriction = 0) { for (int i = 0; i < numberOfNamesToReturn; i++) { yield return(this.Get(template, order, separator, forceSingleLetter, lengthRestriction)); } }