private void worker_DoWork(object sender, DoWorkEventArgs e) { List <string> param = e.Argument as List <string>; MyHttpUtility httpUtility = new MyHttpUtility(); int orgId = 0; try { string result; httpUtility.Proxy = _proxy; httpUtility.NetCredential = _netCredential; httpUtility.UserAgent = _userAgent; httpUtility.Accept = _accept; httpUtility.ContentType = _contentTypeUrlencoded; httpUtility.AcceptLanguage = _acceptLanguage; httpUtility.AllowAutoRedirect = false; httpUtility.Timeout = _timeout; httpUtility.CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore); httpUtility.KeepAlive = true; httpUtility.Expect100Continue = false; ToLog(">Проверка доступности хостинга. Ожидайте..."); if (httpUtility.PingHost(_hostAddr, out result)) { ToLog("Успешно"); } else { throw new Exception( "Нет доступа к сети Интернет. Укажите параметры прокси-сервера(если есть). Ошибка: " + result); } if (_abortSending) { throw new Exception(">Отправка данных прервана!"); } ////// orgId = IsRegisteredOrg(httpUtility, param[0], param[3]); if (orgId > 0) { ToLog("Успешно"); } else { throw new Exception( "Организация не найдена: Вы неверно ввели пароль или Вы не заключали дополнительное соглашение."); } if (_abortSending) { throw new Exception(">Отправка данных прервана!"); } ////// int mdc = SendMdc(httpUtility, orgId, Int32.Parse(param[1]), Int32.Parse(param[2])); if (mdc > 0) { ToLog("Успешно"); } else { throw new Exception("Произошла ошибка при отправке контрольной суммы!"); } if (_abortSending) { throw new Exception(">Отправка данных прервана!"); } ////// string archivePath = Path.Combine(_directoryPath, _archiveName); if (File.Exists(archivePath)) { File.Delete(archivePath); } ToLog(">Сжатие контейнера. Ожидайте..."); using (ZipFile zip = new ZipFile()) { zip.CompressionLevel = CompressionLevel.BestCompression; zip.AddDirectoryWillTraverseReparsePoints = false; zip.Comment = "Arhiv kontei`nera."; zip.AddFile(Path.Combine(_directoryPath, _containerName), ""); zip.Save(archivePath); } ToLog("Успешно"); long length = (new FileInfo(archivePath)).Length; ToLog("Размер сжатого контейнера: " + length + " байт (" + String.Format("{0:###0.00}", length / 1048576.0) + " Мб)"); if (_abortSending) { throw new Exception(">Отправка данных прервана!"); } int blob = SendBlob(httpUtility, orgId, Int32.Parse(param[1])); if (_abortSending) { throw new Exception(">Отправка данных прервана!"); } if (blob > 0) { ToLog("Успешно"); } else { throw new Exception("Произошла ошибка при отправке контейнера!"); } int update = UpdateMDC(httpUtility, orgId, Int32.Parse(param[1]), mdc, 1); if (update > 0) { ToLog( ">Передача успешно завершена! В течение 30-60 минут Вам на почту прийдет отчет о проверке данных."); } else { throw new Exception("Данные не отправлены из-за ошибки передачи"); } ////// MainForm.ShowInfoMessage( "Передача успешно завершена! В течение 30-60 минут Вам на почту прийдет отчет о проверке данных.", "Внимание"); } catch (Exception ex) { ToLog(ex.Message); DeleteAll(httpUtility, orgId, Int32.Parse(param[1])); MainForm.ShowErrorFlexMessage(ex.Message, "Ошибка отправки данных"); } finally { _abortSending = false; } }