public override void Run() { var targetPath = Arguments.First(ArgumentsDictionary.Import).Value; var ruleId = Arguments.First(ArgumentsDictionary.RuleId).Value; var transactionId = Arguments.First(ArgumentsDictionary.ImportId).Value; var target = new FileSourceProfile { FilePath = targetPath, TransactionIdentificator = transactionId, RuleIdentificatorString = ruleId }; Console.WriteLine(@"Импорт из произвольного источника"); Console.WriteLine(@"Источник: " + target.Source.Location); Console.WriteLine(@"Правило: " + target.Rule.Name + " (" + target.Rule.Identificator + ")"); Console.WriteLine(@"Идентификатор: " + target.TransactionIdentificator); _task = ImportToolkit.CreateImportTask(target); _task.StageChanged += TaskStageChanged; _task.ProgressChanged += TaskProgressChanged; _task.Interrupted += TaskOnInterrupted; _task.Started += TaskStarted; _task.Finished += TaskFinished; _taskWaitHandle = new AutoResetEvent(false); _task.Start(); //Console.WriteLine("Подготовка"); _taskWaitHandle.WaitOne(); }
public static void FillFromModel(FileImportTargetViewModel viewModel, FileSourceProfile model) { viewModel.Model = model; // viewModel.Guid = model.Guid; viewModel.Transaction = model.TransactionIdentificator; viewModel.FilePath = model.FilePath; viewModel.UpdateAvailableRules <ExcelImportRule>(); viewModel.ImportRule = model.Rule; viewModel.CleanBeforeImport = model.CleanBeforeImport; viewModel.EmbedSource = model.EmbedSource; viewModel.Distributor = model.Distributor; }
private void SaveImpl() { var model = Model as FileSourceProfile; if (model == null) { model = new FileSourceProfile { Guid = Guid.NewGuid() }; } model.FilePath = FilePath; model.TransactionIdentificator = Transaction; model.RuleIdentificatorString = ImportRule.Identificator; model.CleanBeforeImport = CleanBeforeImport; model.EmbedSource = EmbedSource; model.Distributor = Distributor; TargetsLocator.Set(model); App.Window.NavigateModal(null); }
public FileImportTargetViewModel(FileSourceProfile rule) : this() { Model = rule; FillFromModel(this, rule); }