private void GenerateEmails() { string[] arr = Email.Split(new char[] { '@' }); string name = arr[0]; string server = arr[1]; int currentPosition = 1; int lastPosition = name.Length - 1; int generatedCount = 0; while (true) { int firstPosition = -1; for (int i = currentPosition; i <= lastPosition; i++) { if (name[i - 1] != '.' && name[i] != '.') { if (firstPosition == -1) { firstPosition = i; } string email = $"{name.Insert(i, ".")}@{server}"; if (!GeneratedEmails.Contains(email) && (Permutations == 0 || generatedCount < Permutations)) { GeneratedEmails.Add(email); generatedCount++; } } } if (firstPosition != -1) { name = name.Insert(firstPosition, "."); currentPosition = firstPosition + 1; lastPosition++; } else { break; } } }
public DotTrickGeneratorViewModel() { Generate = new DelegateCommand(parameter => { GenerateEmails(); }, parameter => Email != null); Clear = new DelegateCommand(parameter => { GeneratedEmails.Clear(); }, parameter => GeneratedEmails.Count > 0); Export = new DelegateCommand(parameter => { SaveFileDialog dialog = new SaveFileDialog() { DefaultExt = ".csv", Filter = "CSV files (.csv)|*.csv" }; if (dialog.ShowDialog() ?? false) { using (StreamWriter writer = new StreamWriter(dialog.FileName)) { foreach (string email in GeneratedEmails) { writer.WriteLine(email); } writer.Close(); } } }, parameter => GeneratedEmails.Count > 0); }