Пример #1
0
        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;
                }
            }
        }
Пример #2
0
        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);
        }