int i = new Random().Next(1,21);
string NickName = "";
switch (i)
{
// генерируем как в кубике "Random > Логин"
case 1:
NickName = project.Profile.RegenerateLogin("[Eng|[RndNum|3|5]]");
break;
case 2:
NickName = project.Profile.RegenerateLogin ("[Lat|[RndNum|3|5]]");
break;
case 3:
NickName = project.Profile.RegenerateLogin ("[Jap|[RndNum|3|5]]");
break;
// генерируем на основе двух переменных Imya Familiya (можете туда внести из профиля данные)
case 4:
NickName = project.Variables["Imya"].Value.ToLower() + project.Variables["Familiya"].Value.ToLower()[0];
break;
case 5:
NickName = project.Variables["Imya"].Value.ToLower()[0] + project.Variables["Familiya"].Value.ToLower();
break;
case 6:
NickName = project.Variables["Imya"].Value.ToLower() + project.Variables["Familiya"].Value.ToLower();
break;
case 7:
NickName = project.Variables["Imya"].Value + project.Variables["Familiya"].Value.ToLower();
break;
case 8:
NickName = project.Variables["Familiya"].Value.ToLower() + new Random().Next(10,9999).ToString();
break;
case 9:
NickName = project.Variables["Imya"].Value + project.Variables["Familiya"].Value.ToLower();
break;
case 10:
NickName = project.Variables["Imya"].Value + project.Variables["Familiya"].Value.ToLower();
break;
default:
// если рандом сгенерил число больше 10, то берет случайную строку из списка List_NickNames (спарсил ники какого-то форума):
int random_number = new Random().Next(project.Lists["List_NickNames"].Count);
NickName = project.Lists["List_NickNames"][random_number];
break;
}
// переводим в транслит, если вдруг буквы не английские будут:
NickName = Macros.TextProcessing.Translit(NickName);
//Подчищаем лишние символы регулярками:
NickName = System.Text.RegularExpressions.Regex.Replace(NickName, @"[^A-Za-z\d\.]", "");
NickName = System.Text.RegularExpressions.Regex.Replace(NickName, @"([^A-Za-z\d])[^A-Za-z\d]+", "$1");
NickName = System.Text.RegularExpressions.Regex.Replace(NickName, @"^[^A-Za-z\d]+", "");
NickName = System.Text.RegularExpressions.Regex.Replace(NickName, @"[^A-Za-z\d]+$", "");
//приводим в нижний регистр если надо:
NickName = NickName.ToLower();
return NickName.Trim();