Ejemplo n.º 1
0
        public void Run(IWorker worker)
        {
            worker.OperationName = "Подготовка данных";
            worker.ReportProgress(0, "Получение контрагентов");
            _counterparties      = _counterpartyRepository.GetCounterpartiesWithInnAndAnyContact(_uow);
            worker.OperationName = "Выгрузка имён и контактных данных";
            worker.StepsCount    = Steps;
            Result = new ExportCounterpariesData(_uow);
            int i = 0;

            while (!worker.IsCancelled && i < Steps)
            {
                worker.ReportProgress(i, "Контрагент");
                Result.AddCounterparty(_counterparties[i]);
                i++;
            }
        }
Ejemplo n.º 2
0
        protected void OnBtnRunToFileClicked(object sender, EventArgs e)
        {
            using (var exportOperation = new ExportCounterpartiesTo1C()) {
                this.exportInProgress = true;
                LongOperationDlg.StartOperation(exportOperation.Run, "", 1, false);
                this.exportInProgress = false;
                exportData            = exportOperation.Result;
            }
            var hasError = UpdateErrors(exportData.Errors);

            if (hasError)
            {
                return;
            }
            btnRunToFile.Sensitive = !hasError && !exportInProgress;

            var settings = new XmlWriterSettings {
                OmitXmlDeclaration = true,
                Indent             = true,
                Encoding           = System.Text.Encoding.UTF8,
                NewLineChars       = "\r\n"
            };
            var fileChooser = new Gtk.FileChooserDialog("Выберите файл для сохранения выгрузки",
                                                        (Window)this.Toplevel,
                                                        Gtk.FileChooserAction.Save,
                                                        "Отмена", ResponseType.Cancel,
                                                        "Сохранить", ResponseType.Accept
                                                        );
            var dateText = DateTime.Now.ToShortDateString().Replace(System.IO.Path.DirectorySeparatorChar, '-');

            fileChooser.CurrentName = $"Выгрузка контрагентов на {dateText}.xml";
            var filter = new FileFilter();

            filter.AddPattern("*.xml");
            fileChooser.Filter = filter;
            if (fileChooser.Run() == (int)ResponseType.Accept)
            {
                var filename = fileChooser.Filename.EndsWith(".xml") ? fileChooser.Filename : fileChooser.Filename + ".xml";
                using (XmlWriter writer = XmlWriter.Create(filename, settings)) {
                    exportData.ToXml().WriteTo(writer);
                }
            }
            fileChooser.Destroy();
        }