private void ProcessOrder(KonturWorker konturW, Order order) { try { Message("Обработка " + order.CompanyINNOGRN + " " + order.CustomerEmail); var info = konturW.Process(order); var file = ReportGenerator.Generate(info, order); SaveProcessedOrder(order); Message("Успешно обработан " + order.CompanyINNOGRN + " " + order.CustomerEmail); #if DEBUG SaveSO(info); #endif } catch (Exception ex) { ErrorLog(ex); Message("Ошибка при обработке заказа " + order.CompanyINNOGRN + " " + order.CustomerEmail + " " + ex.Message); } }
private void StartStopButton_Click(object sender, EventArgs e) { if (!IsWorking) { StartStopButton.Text = "Stop"; SettingsBox.Enabled = false; SaveConfig(); KonturWorker konturW = new KonturWorker(); konturW.Cookie = CookieTextBox.Text; Message(string.Format("Доступно {0} прокси", Settings.ProxyList.Count)); timer = new System.Threading.Timer(new TimerCallback((obj) => { if (IsWorking) { return; } IsWorking = true; try { Message("Начало проверки заказов"); var orders = OrdersProvider.GetOrders(); var processedOrders = GetProcessedOrders(); if (processedOrders.Count > 0) { orders = orders.Except(processedOrders).ToList(); } if (orders.Count == 0) { Message("Новых заказов не получено"); IsWorking = false; return; } Message("Получено заказов " + orders.Count); foreach (var order in orders) { try { Message("Обработка " + order.CompanyINNOGRN + " " + order.CustomerEmail); if (!System.Text.RegularExpressions.Regex.IsMatch(order.CustomerEmail, @"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?")) { throw new Exception("Неправильный формат email"); } var info = konturW.Process(order); var file = ReportGenerator.Generate(info, order); #if DEBUG string realEmail = order.CustomerEmail; order.CustomerEmail = "*****@*****.**"; #endif string body = string.Format( "Добрый день!\nБлагодарим Вас за использование ресурса bezrisk.ru \nВ прикрепленном ниже файле содержится отчет о проверяемой Вами компании. \nЕсли для просмотра, Вы используете Microsoft Word, рекомендуем убедится, что документ отображается в режиме 'разметка страницы'(настройку режима можно осуществить в правом нижнем углу страницы). \nПо возникшим вопросам, жалобам и предложениям обращайтесь ответным письмом.\nТак же у Вас теперь есть возможность экономить при работе с нами.Обратите внимание на наше специальное предложение: При единовременном заказе 10 отчетов и более, действует скидка - 50 %.Что бы воспользоваться данным предложением и получить скидку, пишите ответным письмом\n\n___________________\nС уважением,\nАдминистрация ресурса bezrisk.ru"); EmailSender.SendEmail(order.CustomerEmail, "Отчет по компании ИНН " + info.INN, body, file); #if DEBUG order.CustomerEmail = realEmail; #endif SaveProcessedOrder(order); Message("Успешно обработан " + order.CompanyINNOGRN + " " + order.CustomerEmail); Sucess.Add(order); } catch (Exception ex) { ErrorLog(ex); Message("Ошибка при обработке заказа " + order.CompanyINNOGRN + " " + order.CustomerEmail + " " + ex.Message); Fail.Add(order); } finally { RefreshStat(); } } IsWorking = false; } catch (Exception ex) { IsWorking = false; Message(ex.Message); } }), null, 500, (int)IntervalNumericUpDown.Value * 60000); } else { timer.Dispose(); StartStopButton.Text = "Start"; IsWorking = false; SettingsBox.Enabled = true; } }