Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }