public abstract class RandomWordHelper
{
public static string GetRandomWord(int length, WordType wordType)
{
string alphabet = null;
switch (wordType)
{
case WordType.LetterAndNumbers: // exclude S,O,I and 5,0,1 to avoid confusion
alphabet = "ABCDEFGHJKLMNPQRTUVWXYZ2346789";
break;
case WordType.OnlyNumbers:
alphabet = "1234567890";
break;
case WordType.OnlyLetters:
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
break;
}
return GetRandomString(alphabet, length);
}
private static string GetRandomString(string alphabet, int length)
{
var sb = new StringBuilder();
var random = new Random();
for (int i = 0; i < length; i++)
{
sb.Append(
alphabet.Substring(
random.Next(alphabet.Length), 1));
}
return sb.ToString();
}
public enum WordType
{
LetterAndNumbers = 0,
OnlyLetters = 1,
OnlyNumbers = 2,
}
}
use:
string word = GetRandomWord(9, RandomWordHelper.WordType.LetterAndNumbers);
if need generarte unique word:
private static string GetUniqueRandomWord()
{
bool isUniqueWord = false;
string randomWord = String.Empty;
while (!isUniqueWord)
{
randomWord = GetRandomWord(9, RandomWordHelper.WordType.LetterAndNumbers);
isUniqueWord = CheckUniqueWord(randomWord);
}
return randomWord;
}
private static bool CheckUniqueWord(string randomWord)
{
var service = new HeadsRtailsTicketService();
return service.GetByTicketCode(randomWord) == null;
}
use:
string s = GetUniqueRandomWord();