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();
                    }
                });
            }
        }
        private void OnProcessInput(IXApplication app, List <IXDocument> input)
        {
            if (m_FindDrawings)
            {
                var cts = new CancellationTokenSource();
                var cancellationToken = cts.Token;

                var vm = new ReferenceExtractorVM(new ReferenceExtractor(app, m_EntDesc.DrawingFileFilter.Extensions),
                                                  input.ToArray(), m_EntDesc, m_Logger, m_MsgSvc, ReferencesScope_e.SourceDocumentsOnly, true, cancellationToken);

                input.Clear();

                var popup = m_Host.Extension.CreatePopupWindow <ReferenceExtractorWindow>();
                popup.Control.DataContext            = vm;
                popup.Control.ReferencesGroupVisible = false;

                popup.Control.Loaded += async(s, e) =>
                {
                    try
                    {
                        await vm.CollectReferencesAsync();
                    }
                    catch (OperationCanceledException)
                    {
                    }
                };

                if (popup.ShowDialog() == true)
                {
                    input.AddRange(vm.GetCheckedDocuments());
                }
                else
                {
                    cts.Cancel();
                    throw new OperationCanceledException();
                }
            }
        }