private void Generating(object sender, DoWorkEventArgs e) { _sw.Reset(); _sw.Start(); _totalRows = 0; base.Dispatcher.BeginInvoke((Action) delegate { GenerateProjectsButton.IsEnabled = false; }); List <string> ext = new List <string> { ".txt" }; IEnumerable <string> enumerable = from s in Directory.GetFiles(_linksPath, "*.*", SearchOption.TopDirectoryOnly) where ext.Contains(Path.GetExtension(s)) select s; string[][] validMails = GetValidMails(_emailsFilePath); int num = 0; _linksFilePaths = ((enumerable as List <string>) ?? enumerable.ToList()); if (_linksFilePaths.Count > validMails.Length) { System.Windows.MessageBox.Show($"Email list contains `{validMails.Length}` unused emails, you trying to generate `{_linksFilePaths.Count}`", "Warning!", MessageBoxButton.OK); } else { int linesTotal = _linksFilePaths.SelectMany(File.ReadAllLines).Count(); ProcessedLinesProgressBar.Dispatcher.BeginInvoke((Action) delegate { ProcessedLinesProgressBar.Maximum = (double)linesTotal; }); int num2 = 0; foreach (string linksFilePath in _linksFilePaths) { ProjectName = Path.GetFileNameWithoutExtension(linksFilePath).Replace('.', '_') + "_Generated"; string text = GenerateNickName(); string text2 = RandomStringAlpha(11); string text3 = validMails[num % validMails.Length][0]; string text4 = validMails[num % validMails.Length][1]; string[] array = GenerateCountryCity(); string path = Path.Combine(_outputPath, ProjectName + ".xml"); string text5 = "C:\\Temp\\" + ProjectName + "_URLs.txt"; string[] array2 = File.ReadAllLines(linksFilePath); string contents = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + Environment.NewLine + "<XRumerProject>" + Environment.NewLine + " <PrimarySection>" + Environment.NewLine + " <ProjectName>" + ProjectName + "</ProjectName>" + Environment.NewLine + " <ProjectFormat>ANSI</ProjectFormat>" + Environment.NewLine + " <NickName>" + text + "</NickName>" + Environment.NewLine + " <RealName>" + text + RandomString(2) + "</RealName>" + Environment.NewLine + " <Password>" + text2 + "</Password>" + Environment.NewLine + " <EmailAddress>" + text3 + "</EmailAddress>" + Environment.NewLine + " <EmailPassword>" + text4 + "</EmailPassword>" + Environment.NewLine + " <EmailLogin>" + text3 + "</EmailLogin>" + Environment.NewLine + " <EmailPOP>" + SetEmailPop(text3) + "</EmailPOP>" + Environment.NewLine + " <Homepage>#file_links_A[\"C:\\Temp\\" + ProjectName + "_URLs.txt\",1,N]</Homepage>" + Environment.NewLine + $" <ICQ>{_rnd.Next(111111111, 999999999)}</ICQ>" + Environment.NewLine + " <City>" + array[1] + "</City>" + Environment.NewLine + " <Country>" + array[0] + "</Country>" + Environment.NewLine + " <Occupation>" + GenerateOccupation() + "</Occupation>" + Environment.NewLine + " <Interests>" + GenerateInterests() + "</Interests>" + Environment.NewLine + " <Signature>#file_links_A[\"" + text5 + "\",1,N]</Signature>" + Environment.NewLine + " <Gender>0</Gender>" + Environment.NewLine + " <UnknownFields></UnknownFields>" + Environment.NewLine + " <PollTitle></PollTitle>" + Environment.NewLine + " <PollOption1></PollOption1>" + Environment.NewLine + " <PollOption2></PollOption2>" + Environment.NewLine + " <PollOption3></PollOption3>" + Environment.NewLine + " <PollOption4></PollOption4>" + Environment.NewLine + " <PollOption5></PollOption5>" + Environment.NewLine + " </PrimarySection>\r\n" + " <SecondarySection>\r\n" + " <Subject1>#file_links_A[\"C:\\Temp\\" + ProjectName + "_Titles.txt\",1,N]</Subject1>\r\n" + " <Subject2>#file_links_A[\"C:\\Temp\\" + ProjectName + "_Titles.txt\",1,N]</Subject2>\r\n" + " <PostText>#file_links_A[\"C:\\Temp\\" + ProjectName + "_Texts.txt\",1,N]</PostText>\r\n" + " <Prior>бизнес\r\n" + "досуг\r\n" + "объяв\r\n" + "курилка\r\n" + "флейм\r\n" + "флэйм\r\n" + "основн\r\n" + "развлеч\r\n" + "оффтопик\r\n" + "офтопик\r\n" + "офф-топик\r\n" + "прочее\r\n" + "разное\r\n" + "обо всём\r\n" + "flood\r\n" + "flame\r\n" + "stuff\r\n" + "blah\r\n" + "off-topic\r\n" + "off topic\r\n" + "offtopic\r\n" + "oftopic\r\n" + "general\r\n" + "common\r\n" + "business\r\n" + "обща\r\n" + "общий\r\n" + "общее\r\n" + "общие\r\n" + "реклам\r\n" + "adver</Prior>\r\n" + " <OnlyPriors>false</OnlyPriors>\r\n" + " </SecondarySection>\r\n" + "</XRumerProject>"; if (Regex.IsMatch(array2.First(), "http://.+")) { Task <List <string[]> > task = WebParser.AccessTheWebAsync(array2.ToList(), num2, _threads, backgroundWorker); task.Wait(); List <string[]> result = task.Result; num2 = (_totalRows = num2 + array2.Length); backgroundWorker.ReportProgress(num2); if (result != null && result.Count > 0) { string contents2 = string.Join(Environment.NewLine, from l in result select l[0]); string contents3 = string.Join(Environment.NewLine, from l in result select l[1]); string contents4 = string.Join(Environment.NewLine, result?.Select(PerformText)); File.WriteAllText("C:\\Temp\\" + ProjectName + "_URLs.txt", contents2); File.WriteAllText("C:\\Temp\\" + ProjectName + "_Texts.txt", contents4); File.WriteAllText("C:\\Temp\\" + ProjectName + "_Titles.txt", contents3); File.AppendAllText(GetUsedEmailsFilePath(_emailsFilePath), text3 + Environment.NewLine); File.WriteAllText(path, contents); } } else { try { JArray jArray; if ((jArray = (JsonConvert.DeserializeObject(array2.First()) as JArray)) != null) { List <string> values = (from x in jArray.Children() select((string)x["link"]).Replace("\n", "").Replace("\r", "")).ToList(); List <string> values2 = (from x in jArray.Children() select((string)x["title"]).Replace("\n", "").Replace("\r", "")).ToList(); List <string> values3 = (from x in jArray.Children() select PerformText(new string[2] { ((string)x["link"]).Replace("\n", "").Replace("\r", ""), ((string)x["description"]).Replace("\n", "").Replace("\r", "") })).ToList(); File.WriteAllText("C:\\Temp\\" + ProjectName + "_URLs.txt", string.Join(Environment.NewLine, values)); using (StreamWriter streamWriter = new StreamWriter(File.Open("C:\\Temp\\" + ProjectName + "_Texts.txt", FileMode.Create), Encoding.GetEncoding("Windows-1251"))) { streamWriter.Write(string.Join(Environment.NewLine, values3)); } using (StreamWriter streamWriter2 = new StreamWriter(File.Open("C:\\Temp\\" + ProjectName + "_Titles.txt", FileMode.Create), Encoding.GetEncoding("Windows-1251"))) { streamWriter2.Write(string.Join(Environment.NewLine, values2)); } File.AppendAllText(GetUsedEmailsFilePath(_emailsFilePath), text3 + Environment.NewLine); File.WriteAllText(path, contents); num2++; _totalRows += jArray.Count; backgroundWorker.ReportProgress(num2); } } catch (Exception ex) { System.Windows.MessageBox.Show("Fail to deserialize content in file `" + linksFilePath + "` as json " + Environment.NewLine + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Hand); } } num++; } } }