private void OnProcessInput(IXApplication app, ICadApplicationInstanceProvider instProvider, List <IXDocument> input) { if (m_EnableOrdering) { var vm = new InputsSorterVM(instProvider.Descriptor); var cts = new CancellationTokenSource(); var cancellationToken = cts.Token; var src = input.ToArray(); input.Clear(); m_Host.WpfApplication.Dispatcher.Invoke(() => { var wnd = new InputsSorterWindow(); wnd.Owner = m_Host.WpfApplication.MainWindow; wnd.DataContext = vm; wnd.Loaded += async(s, e) => { try { var itemsList = await Task.Run( () => m_Sorter.Sort(src, p => vm.Progress = p, cancellationToken)); vm.LoadItems(itemsList); } catch (OperationCanceledException) { } }; var res = wnd.ShowDialog(); if (res == true) { foreach (ItemVM item in vm.InputView) { input.Add(item.Document); } } else { cts.Cancel(); throw new OperationCanceledException(); } }); } }
private void OnProcessInput(IXApplication app, ICadApplicationInstanceProvider instProvider, List <IXDocument> input) { if (m_ExtractReferences) { var cts = new CancellationTokenSource(); var cancellationToken = cts.Token; var vm = new ReferenceExtractorVM(new ReferenceExtractor(app, instProvider.Descriptor.DrawingFileFilter.Extensions), input.ToArray(), instProvider.Descriptor, m_Logger, m_MsgSvc, ReferencesScope_e.AllDependencies, true, cancellationToken); input.Clear(); m_Host.WpfApplication.Dispatcher.Invoke(() => { var wnd = new ReferenceExtractorWindow(); wnd.Owner = m_Host.WpfApplication.MainWindow; wnd.DataContext = vm; wnd.Loaded += async(s, e) => { try { await vm.CollectReferencesAsync(); } catch (OperationCanceledException) { } }; var res = wnd.ShowDialog(); if (res == true) { input.AddRange(vm.GetCheckedDocuments()); } else { cts.Cancel(); throw new OperationCanceledException(); } }); } }
public BatchRunner(BatchJob job, ICadApplicationInstanceProvider[] appProviders, TextWriter journalWriter, IProgressHandler progressHandler, IBatchApplicationProxy batchAppProxy, IJobManager jobMgr, IXLogger logger, Func <TimeSpan?, IResilientWorker <BatchJobContext> > workerFact, IPopupKiller popupKiller) { m_Job = job; m_JournalWriter = journalWriter; m_ProgressHandler = progressHandler; m_AppProvider = job.FindApplicationProvider(appProviders); m_MacroRunnerSvc = m_AppProvider.MacroRunnerService; m_WorkerFact = workerFact; m_BatchAppProxy = batchAppProxy; m_PopupKiller = popupKiller; m_PopupKiller.PopupNotClosed += OnPopupNotClosed; m_Logger = logger; m_JobMgr = jobMgr; }
public void ProcessInput(IXApplication app, ICadApplicationInstanceProvider instProvider, List <IXDocument> input) => RequestProcessInput?.Invoke(app, instProvider, input);
public void RegisterApplicationProvider(ICadApplicationInstanceProvider provider) => m_ApplicationProviders.Add(provider);