Exemple #1
0
        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();
                    }
                });
            }
        }
Exemple #3
0
        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;
        }
Exemple #4
0
 public void ProcessInput(IXApplication app, ICadApplicationInstanceProvider instProvider, List <IXDocument> input)
 => RequestProcessInput?.Invoke(app, instProvider, input);
Exemple #5
0
 public void RegisterApplicationProvider(ICadApplicationInstanceProvider provider)
 => m_ApplicationProviders.Add(provider);