/// <summary>
        /// Adds the given <paramref name="cmd"/> to the top bar at the top of the control.  This will be always
        /// visible at the top of the form
        /// </summary>
        /// <param name="cmd"></param>
        /// <param name="overrideCommandName"></param>
        /// <param name="overrideImage"></param>
        public void Add(IAtomicCommand cmd, string overrideCommandName = null, Image overrideImage = null)
        {
            var p = _hostControl.GetTopmostRDMPUserControl();

            if (p != _hostControl)
            {
                p.CommonFunctionality.Add(cmd, overrideCommandName, overrideImage);
                return;
            }

            InitializeToolStrip();

            var button = atomicCommandUIFactory.CreateToolStripItem(cmd);

            if (!string.IsNullOrWhiteSpace(overrideCommandName))
            {
                button.Text = overrideCommandName;
            }

            if (overrideImage != null)
            {
                button.Image = overrideImage;
            }

            Add(button);
        }
 public ToolStripMenuItem CreateMenuItem(IAtomicCommand command)
 {
     return(new AtomicCommandMenuItem(command, _activator)
     {
         Tag = command
     });
 }
 public AtomicCommandLinkLabel CreateLinkLabel(IAtomicCommand command)
 {
     return(new AtomicCommandLinkLabel(_iconProvider, command)
     {
         Tag = command
     });
 }
Exemple #4
0
        protected ToolStripMenuItem GetMenuItem(IAtomicCommand cmd)
        {
            if (_atomicCommandUIFactory == null)
            {
                _atomicCommandUIFactory = new AtomicCommandUIFactory(ItemActivator);
            }

            return(_atomicCommandUIFactory.CreateMenuItem(cmd));
        }
        public virtual void Execute()
        {
            LastCommand = this;

            if (IsImpossible)
            {
                throw new ImpossibleCommandException(this, ReasonCommandImpossible);
            }
        }
        /// <summary>
        /// Adds the given command to the drop down item list of this tool strip menu item
        /// </summary>
        /// <param name="cmd"></param>
        /// <param name="shortcutKey"></param>
        /// <returns></returns>
        protected ToolStripMenuItem Add(IAtomicCommand cmd, Keys shortcutKey = Keys.None)
        {
            var mi = AtomicCommandUIFactory.CreateMenuItem(cmd);

            if (shortcutKey != Keys.None)
            {
                mi.ShortcutKeys = shortcutKey;
            }

            DropDownItems.Add(mi);
            return(mi);
        }
Exemple #7
0
        public AtomicCommandLinkLabel(IIconProvider iconProvider, IAtomicCommand command)
        {
            _command = command;
            InitializeComponent();

            pbCommandIcon.Image = command.GetImage(iconProvider);
            var name = command.GetCommandName();

            lblName.Text = name;

            helpIcon1.SetHelpText(_command.GetCommandName(), command.GetCommandHelp());
        }
Exemple #8
0
        private void AddCommand(IAtomicCommand command, TableLayoutPanel tableLayoutPanel)
        {
            var control = _uiFactory.CreateLinkLabel(command);

            SetBackgroundColor(tableLayoutPanel, control);

            tableLayoutPanel.Controls.Add(control, 0, tableLayoutPanel.Controls.Count);

            //extend the size to match
            var panel = (Panel)tableLayoutPanel.Parent;

            panel.Width = Math.Max(panel.Width, control.Width + 10);
        }
Exemple #9
0
        public AtomicCommandToolStripItem(IAtomicCommand command, IActivateItems activator)
        {
            _command = command;

            Image = command.GetImage(activator.CoreIconProvider);
            Text  = command.GetCommandName();
            Tag   = command;

            //disable if impossible command
            Enabled = !command.IsImpossible;

            ToolTipText = command.IsImpossible ? command.ReasonCommandImpossible : command.GetCommandHelp();
        }
Exemple #10
0
        public AtomicCommandMenuItem(IAtomicCommand command, IActivateItems activator)
        {
            _command   = command;
            _activator = activator;

            Text  = command.GetCommandName();
            Tag   = command;
            Image = command.GetImage(activator.CoreIconProvider);

            //disable if impossible command
            Enabled = !command.IsImpossible;

            ToolTipText = command.IsImpossible ? command.ReasonCommandImpossible : command.GetCommandHelp() ?? activator.GetDocumentation(command.GetType());
        }
Exemple #11
0
        /// <summary>
        /// Asserts that the given command is not marked IsImpossible
        /// </summary>
        /// <param name="cmd"></param>
        protected void AssertCommandIsPossible(IAtomicCommand cmd)
        {
            //if it isn't marked impossible
            if (!cmd.IsImpossible)
            {
                return;
            }

            if (string.IsNullOrWhiteSpace(cmd.ReasonCommandImpossible))
            {
                Assert.Fail("Command was impossible but no reason was given!!!");
            }

            Assert.Fail("Command was Impossible because:" + cmd.ReasonCommandImpossible);
        }
Exemple #12
0
        protected ToolStripMenuItem Add(IAtomicCommand cmd, Keys shortcutKey = Keys.None, ToolStripMenuItem toAddTo = null)
        {
            var mi = AtomicCommandUIFactory.CreateMenuItem(cmd);

            if (shortcutKey != Keys.None)
            {
                mi.ShortcutKeys = shortcutKey;
            }

            if (toAddTo == null)
            {
                Items.Add(mi);
            }
            else
            {
                toAddTo.DropDownItems.Add(mi);
            }

            return(mi);
        }
        public void Add(IAtomicCommand toPresent)
        {
            if (_args.ShouldSkipCommand(toPresent))
            {
                return;
            }

            var key = Keys.None;

            if (!string.IsNullOrWhiteSpace(toPresent.SuggestedShortcut))
            {
                Enum.TryParse <Keys>(toPresent.SuggestedShortcut, out key);
            }

            if (toPresent.SuggestedCategory == null)
            {
                Add(toPresent, toPresent.Ctrl ? Keys.Control | key : key);
            }
            else
            {
                Add(toPresent, toPresent.Ctrl ? Keys.Control | key : key, toPresent.SuggestedCategory);
            }
        }
 /// <summary>
 /// Adds the given <paramref name="cmd"/> to the menu bar at the top of the control
 /// </summary>
 /// <param name="cmd"></param>
 /// <param name="overrideCommandName"></param>
 /// <param name="overrideImage"></param>
 /// <param name="overlayKind"></param>
 protected void Add(IAtomicCommand cmd, string overrideCommandName, RDMPConcept overrideImage, OverlayKind overlayKind = OverlayKind.None)
 {
     Add(cmd, overrideCommandName, _activator.CoreIconProvider.GetImage(overrideImage, overlayKind));
 }
 /// <summary>
 /// Returns true if <see cref="SkipCommand{T}"/> has been called for this command type
 /// </summary>
 /// <param name="cmd"></param>
 /// <returns></returns>
 public bool ShouldSkipCommand(IAtomicCommand cmd)
 {
     return(_skipCommands.Contains(cmd.GetType()));
 }
Exemple #16
0
 /// <summary>
 /// Creates a new command under a submenu named <paramref name="submenu"/> (if this doesn't exist yet it will be created).
 /// </summary>
 /// <param name="cmd"></param>
 /// <param name="shortcutKey"></param>
 /// <param name="submenu"></param>
 protected void Add(IAtomicCommand cmd, Keys shortcutKey, string submenu)
 {
     Add(cmd, shortcutKey, AddMenuIfNotExists(submenu));
 }
Exemple #17
0
 public CommandEventArgs(IAtomicCommand command)
 {
     Command = command;
 }
Exemple #18
0
 private void Add(ToolStripMenuItem menu, IAtomicCommand cmd)
 {
     menu.DropDownItems.Add(_commandFactory.CreateMenuItem(cmd));
 }
Exemple #19
0
 /// <summary>
 /// Asserts that the given command is impossible for the <paramref name="expectedReason"/>
 /// </summary>
 /// <param name="cmd"></param>
 /// <param name="expectedReason">The reason it should be impossible - uses StringAssert.Contains</param>
 protected void AssertCommandIsImpossible(IAtomicCommand cmd, string expectedReason)
 {
     Assert.IsTrue(cmd.IsImpossible);
     StringAssert.Contains(expectedReason, cmd.ReasonCommandImpossible);
 }
 /// <summary>
 /// Creates a new command under a submenu named <paramref name="submenu"/> (if this doesn't exist yet it will be created).
 /// </summary>
 /// <param name="cmd"></param>
 /// <param name="shortcutKey"></param>
 /// <param name="submenu"></param>
 /// <param name="image"></param>
 protected void Add(IAtomicCommand cmd, Keys shortcutKey, string submenu, Image image = null)
 {
     Add(cmd, shortcutKey, AddMenuIfNotExists(submenu, image));
 }
Exemple #21
0
        /// <summary>
        /// Returns all commands that could be run involving <paramref name="o"/> in order of most useful to least useful
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        public IEnumerable <IAtomicCommand> CreateCommands(object o)
        {
            foreach (var cmd in _goto.GetCommands(o))
            {
                cmd.SuggestedCategory = GoTo;
                yield return(cmd);
            }

            if (_activator.CanActivate(o))
            {
                yield return(new ExecuteCommandActivate(_activator, o));
            }

            if (Is(o, out ILoggedActivityRootObject root))
            {
                yield return(new ExecuteCommandViewLogs(_activator, root));
            }

            if (Is(o, out Catalogue c))
            {
                bool isApiCall = c.IsApiCall();

                if (!isApiCall)
                {
                    yield return(new ExecuteCommandViewCatalogueData(_activator, c, -1));
                }


                yield return(new ExecuteCommandAddNewSupportingSqlTable(_activator, c)
                {
                    SuggestedCategory = Add
                });

                yield return(new ExecuteCommandAddNewSupportingDocument(_activator, c)
                {
                    SuggestedCategory = Add
                });

                if (!isApiCall)
                {
                    yield return(new ExecuteCommandAddNewAggregateGraph(_activator, c)
                    {
                        SuggestedCategory = Add
                    });
                }

                yield return(new ExecuteCommandAddNewCatalogueItem(_activator, c)
                {
                    SuggestedCategory = Add
                });


                if (!isApiCall)
                {
                    yield return(new ExecuteCommandChangeExtractability(_activator, c)
                    {
                        SuggestedCategory = Extraction
                    });

                    yield return(new ExecuteCommandMakeCatalogueProjectSpecific(_activator, c, null)
                    {
                        SuggestedCategory = Extraction
                    });

                    yield return(new ExecuteCommandMakeProjectSpecificCatalogueNormalAgain(_activator, c)
                    {
                        SuggestedCategory = Extraction
                    });

                    yield return(new ExecuteCommandSetExtractionIdentifier(_activator, c, null, null)
                    {
                        SuggestedCategory = Extraction
                    });
                }

                yield return(new ExecuteCommandExportObjectsToFile(_activator, new[] { c })
                {
                    SuggestedCategory = Metadata
                });

                yield return(new ExecuteCommandExtractMetadata(_activator, new [] { c }, null, null, null, false, null)
                {
                    SuggestedCategory = Metadata
                });
            }

            if (Is(o, out CatalogueFolder cf))
            {
                yield return(new ExecuteCommandCreateNewCatalogueByImportingExistingDataTable(_activator)
                {
                    TargetFolder = cf
                });

                yield return(new ExecuteCommandCreateNewEmptyCatalogue(_activator)
                {
                    TargetFolder = cf
                });
            }

            if (Is(o, out ExtractionInformation ei))
            {
                yield return(new ExecuteCommandCreateNewFilter(_activator, new ExtractionFilterFactory(ei)));

                yield return(new ExecuteCommandCreateNewCohortFromCatalogue(_activator, ei));

                yield return(new ExecuteCommandChangeExtractionCategory(_activator, ei));

                yield return(new ExecuteCommandViewData(_activator, ViewType.TOP_100, ei)
                {
                    SuggestedCategory = "View Data"
                });

                yield return(new ExecuteCommandViewData(_activator, ViewType.Aggregate, ei)
                {
                    SuggestedCategory = "View Data"
                });

                yield return(new ExecuteCommandViewData(_activator, ViewType.Distribution, ei)
                {
                    SuggestedCategory = "View Data"
                });
            }

            if (Is(o, out ExtractionFilter cataFilter))
            {
                yield return(new ExecuteCommandAddNewExtractionFilterParameterSet(_activator, cataFilter));
            }

            if (Is(o, out ExtractionFilterParameterSet efps))
            {
                yield return(new ExecuteCommandAddMissingParameters(_activator, efps));
            }

            if (Is(o, out ISqlParameter p) && p is IMapsDirectlyToDatabaseTable m)
            {
                yield return(new ExecuteCommandSet(_activator, m, p.GetType().GetProperty(nameof(ISqlParameter.Value))));

                if (p is not ExtractionFilterParameterSetValue)
                {
                    yield return(new ExecuteCommandSet(_activator, m, p.GetType().GetProperty(nameof(ISqlParameter.ParameterSQL))));
                }
            }

            if (Is(o, out CatalogueItem ci))
            {
                yield return(new ExecuteCommandLinkCatalogueItemToColumnInfo(_activator, ci));

                yield return(new ExecuteCommandMakeCatalogueItemExtractable(_activator, ci));

                yield return(new ExecuteCommandChangeExtractionCategory(_activator, ci.ExtractionInformation));

                yield return(new ExecuteCommandImportCatalogueItemDescription(_activator, ci)
                {
                    SuggestedShortcut = "I", Ctrl = true
                });

                var ciExtractionInfo = ci.ExtractionInformation;
                if (ciExtractionInfo != null)
                {
                    yield return(new ExecuteCommandViewData(_activator, ViewType.TOP_100, ciExtractionInfo)
                    {
                        SuggestedCategory = "View Data"
                    });

                    yield return(new ExecuteCommandViewData(_activator, ViewType.Aggregate, ciExtractionInfo)
                    {
                        SuggestedCategory = "View Data"
                    });

                    yield return(new ExecuteCommandViewData(_activator, ViewType.Distribution, ciExtractionInfo)
                    {
                        SuggestedCategory = "View Data"
                    });
                }
            }

            if (Is(o, out SupportingSQLTable sqlTable))
            {
                yield return(new ExecuteCommandRunSupportingSql(_activator, sqlTable));
            }

            if (Is(o, out AggregateConfiguration ac) && !ac.Catalogue.IsApiCall())
            {
                yield return(new ExecuteCommandViewSample(_activator, ac));

                yield return(new ExecuteCommandAddNewFilterContainer(_activator, ac));

                yield return(new ExecuteCommandImportFilterContainerTree(_activator, ac));

                yield return(new ExecuteCommandCreateNewFilter(_activator, ac));

                yield return(new ExecuteCommandAddParameter(_activator, ac, null, null, null));

                // graph options
                yield return(new ExecuteCommandAddDimension(_activator, ac)
                {
                    SuggestedCategory = Dimensions
                });

                yield return(new ExecuteCommandSetPivot(_activator, ac)
                {
                    SuggestedCategory = Dimensions
                });

                yield return(new ExecuteCommandSetPivot(_activator, ac, null)
                {
                    OverrideCommandName = "Clear Pivot", SuggestedCategory = Dimensions
                });

                yield return(new ExecuteCommandSetAxis(_activator, ac)
                {
                    SuggestedCategory = Dimensions
                });

                yield return(new ExecuteCommandSetAxis(_activator, ac, null)
                {
                    OverrideCommandName = "Clear Axis", SuggestedCategory = Dimensions
                });


                yield return(new ExecuteCommandCreateNewFilterFromCatalogue(_activator, ac));

                if (ac.OverrideFiltersByUsingParentAggregateConfigurationInstead_ID != null)
                {
                    yield return(new ExecuteCommandSetFilterTreeShortcut(_activator, ac, null)
                    {
                        OverrideCommandName = "Clear Filter Tree Shortcut"
                    });
                }
                else
                {
                    yield return(new ExecuteCommandSetFilterTreeShortcut(_activator, ac));
                }



                //only allow them to execute graph if it is normal aggregate graph
                if (!ac.IsCohortIdentificationAggregate)
                {
                    yield return(new ExecuteCommandExecuteAggregateGraph(_activator, ac));
                }

                yield return(new ExecuteCommandCreateNewCatalogueByExecutingAnAggregateConfiguration(_activator, ac));
            }

            if (Is(o, out IContainer container))
            {
                string targetOperation = container.Operation == FilterContainerOperation.AND ? "OR" : "AND";

                yield return(new ExecuteCommandSet(_activator, container, nameof(IContainer.Operation), targetOperation)
                {
                    OverrideCommandName = $"Set Operation to {targetOperation}"
                });

                yield return(new ExecuteCommandCreateNewFilter(_activator, container.GetFilterFactory(), container));

                yield return(new ExecuteCommandCreateNewFilterFromCatalogue(_activator, container));

                yield return(new ExecuteCommandAddNewFilterContainer(_activator, container)
                {
                    OverrideCommandName = "Add SubContainer"
                });

                yield return(new ExecuteCommandViewFilterMatchData(_activator, container, ViewType.TOP_100));

                yield return(new ExecuteCommandViewFilterMatchData(_activator, container, ViewType.Aggregate));
            }

            if (Is(o, out AggregatesNode an))
            {
                yield return(new ExecuteCommandAddNewAggregateGraph(_activator, an.Catalogue));
            }

            if (Is(o, out AllANOTablesNode _))
            {
                yield return(new ExecuteCommandCreateNewANOTable(_activator));

                yield return(new ExecuteCommandCreateNewExternalDatabaseServer(_activator,
                                                                               new ANOStorePatcher(), PermissableDefaults.ANOStore)
                {
                    OverrideCommandName = "Create ANOStore Database"
                });

                yield return(new ExecuteCommandExportObjectsToFile(_activator, _activator.CoreChildProvider.AllANOTables));
            }

            if (Is(o, out AllCataloguesUsedByLoadMetadataNode aculmd))
            {
                yield return(new ExecuteCommandAssociateCatalogueWithLoadMetadata(_activator, aculmd.LoadMetadata));
            }

            if (Is(o, out AllDataAccessCredentialsNode _))
            {
                yield return(new ExecuteCommandNewObject(_activator,
                                                         () => new DataAccessCredentials(_activator.RepositoryLocator.CatalogueRepository, "New Blank Credentials " + Guid.NewGuid()))
                {
                    OverrideCommandName = "Add New Credentials"
                });
            }

            if (Is(o, out DataAccessCredentialUsageNode usage))
            {
                var existingUsages = _activator.RepositoryLocator.CatalogueRepository.TableInfoCredentialsManager.GetCredentialsIfExistsFor(usage.TableInfo);

                foreach (DataAccessContext context in Enum.GetValues(typeof(DataAccessContext)))
                {
                    yield return new ExecuteCommandSetDataAccessContextForCredentials(_activator, usage, context, existingUsages)
                           {
                               SuggestedCategory = SetUsageContext
                           }
                }
                ;
            }

            if (Is(o, out AllConnectionStringKeywordsNode _))
            {
                yield return(new ExecuteCommandNewObject(_activator,
                                                         () => new ConnectionStringKeyword(_activator.RepositoryLocator.CatalogueRepository, DatabaseType.MicrosoftSQLServer, "NewKeyword", "v"))
                {
                    OverrideCommandName = "Add New Connection String Keyword"
                });
            }

            if (Is(o, out AllExternalServersNode _))
            {
                yield return(new ExecuteCommandCreateNewExternalDatabaseServer(_activator, null, PermissableDefaults.None));

                var assemblyDictionary = new Dictionary <PermissableDefaults, IPatcher>()
                {
                    { PermissableDefaults.DQE, new DataQualityEnginePatcher() },
                    { PermissableDefaults.WebServiceQueryCachingServer_ID, new QueryCachingPatcher() },
                    { PermissableDefaults.LiveLoggingServer_ID, new LoggingDatabasePatcher() },
                    { PermissableDefaults.IdentifierDumpServer_ID, new IdentifierDumpDatabasePatcher() },
                    { PermissableDefaults.ANOStore, new ANOStorePatcher() },
                    { PermissableDefaults.CohortIdentificationQueryCachingServer_ID, new QueryCachingPatcher() }
                };

                foreach (var kvp in assemblyDictionary)
                {
                    yield return(new ExecuteCommandCreateNewExternalDatabaseServer(_activator, kvp.Value, kvp.Key));
                }
            }

            if (Is(o, out ExternalDatabaseServer eds))
            {
                if (eds.WasCreatedBy(new LoggingDatabasePatcher()))
                {
                    yield return(new ExecuteCommandViewLogs(_activator, eds, new LogViewerFilter(LoggingTables.DataLoadRun)));

                    yield return(new ExecuteCommandViewLogs(_activator, eds, new LogViewerFilter(LoggingTables.FatalError)));

                    yield return(new ExecuteCommandViewLogs(_activator, eds, new LogViewerFilter(LoggingTables.ProgressLog)));

                    yield return(new ExecuteCommandViewLogs(_activator, eds, new LogViewerFilter(LoggingTables.TableLoadRun)));
                }

                yield return(new ExecuteCommandQueryPlatformDatabase(_activator, eds)
                {
                    OverrideCommandName = "Query Database"
                });
            }

            if (Is(o, out QueryCacheUsedByCohortIdentificationNode cicQueryCache))
            {
                yield return(new ExecuteCommandClearQueryCache(_activator, cicQueryCache.User));
            }

            if (Is(o, out AllFreeCohortIdentificationConfigurationsNode _) || Is(o, out AllProjectCohortIdentificationConfigurationsNode _))
            {
                yield return(new ExecuteCommandCreateNewCohortIdentificationConfiguration(_activator));
            }


            CohortIdentificationConfiguration cic = null;

            if (Is(o, out ProjectCohortIdentificationConfigurationAssociation pcic) || Is(o, out cic))
            {
                if (pcic != null)
                {
                    cic = pcic.CohortIdentificationConfiguration;
                }

                yield return(new ExecuteCommandViewCohortIdentificationConfiguration(_activator, cic, true));

                yield return(new ExecuteCommandViewCohortIdentificationConfiguration(_activator, cic, false));

                var commit = new ExecuteCommandCreateNewCohortByExecutingACohortIdentificationConfiguration(_activator, null).SetTarget(cic);
                if (pcic != null)
                {
                    commit.SetTarget((DatabaseEntity)pcic.Project);
                }

                yield return(commit);

                //associate with project
                yield return(new ExecuteCommandAssociateCohortIdentificationConfigurationWithProject(_activator).SetTarget(cic));

                var clone = new ExecuteCommandCloneCohortIdentificationConfiguration(_activator).SetTarget(cic);
                if (pcic != null)
                {
                    clone.SetTarget((DatabaseEntity)pcic.Project);
                }

                yield return(clone);

                yield return(new ExecuteCommandFreezeCohortIdentificationConfiguration(_activator, cic, !cic.Frozen));

                yield return(new ExecuteCommandCreateNewCohortIdentificationConfiguration(_activator));

                yield return(new ExecuteCommandSetQueryCachingDatabase(_activator, cic));

                yield return(new ExecuteCommandCreateNewExternalDatabaseServer(_activator, new QueryCachingPatcher(), PermissableDefaults.WebServiceQueryCachingServer_ID));
            }

            if (Is(o, out AllGovernanceNode _))
            {
                yield return(new ExecuteCommandCreateNewGovernancePeriod(_activator));
            }

            if (Is(o, out AllLoadMetadatasNode _))
            {
                yield return(new ExecuteCommandCreateNewLoadMetadata(_activator));

                yield return(new ExecuteCommandImportShareDefinitionList(_activator)
                {
                    OverrideCommandName = "Import Load"
                });
            }

            if (Is(o, out LoadMetadata lmd))
            {
                yield return(new ExecuteCommandExportObjectsToFile(_activator, new IMapsDirectlyToDatabaseTable[] { lmd }));

                yield return(new ExecuteCommandOverrideRawServer(_activator, lmd));

                yield return(new ExecuteCommandCreateNewLoadMetadata(_activator));


                yield return(new ExecuteCommandSetGlobalDleIgnorePattern(_activator)
                {
                    SuggestedCategory = Advanced
                });

                yield return(new ExecuteCommandSetIgnoredColumns(_activator, lmd)
                {
                    SuggestedCategory = Advanced
                });

                yield return(new ExecuteCommandSetIgnoredColumns(_activator, lmd, null)
                {
                    OverrideCommandName = "Clear Ignored Columns", SuggestedCategory = Advanced
                });

                yield return(new ExecuteCommandSet(_activator, lmd, typeof(LoadMetadata).GetProperty(nameof(LoadMetadata.IgnoreTrigger)))
                {
                    OverrideCommandName = $"Ignore Trigger (Current value:{lmd.IgnoreTrigger})",
                    SuggestedCategory = Advanced
                });
            }


            if (Is(o, out LoadMetadataScheduleNode scheduleNode))
            {
                yield return(new ExecuteCommandCreateNewLoadProgress(_activator, scheduleNode.LoadMetadata));
            }

            if (Is(o, out LoadProgress loadProgress))
            {
                yield return(new ExecuteCommandCreateNewCacheProgress(_activator, loadProgress));
            }

            if (Is(o, out LoadStageNode lsn))
            {
                yield return(new ExecuteCommandCreateNewClassBasedProcessTask(_activator, lsn.LoadMetadata, lsn.LoadStage, null));

                yield return(new ExecuteCommandCreateNewFileBasedProcessTask(_activator, ProcessTaskType.SQLFile, lsn.LoadMetadata, lsn.LoadStage));

                yield return(new ExecuteCommandCreateNewFileBasedProcessTask(_activator, ProcessTaskType.Executable, lsn.LoadMetadata, lsn.LoadStage));
            }

            if (Is(o, out LoadDirectoryNode ldn))
            {
                yield return(new ExecuteCommandSet(_activator, ldn.LoadMetadata, typeof(LoadMetadata).GetProperty(nameof(LoadMetadata.LocationOfFlatFiles))));

                yield return(new ExecuteCommandCreateNewDataLoadDirectory(_activator, ldn.LoadMetadata, null));
            }

            if (Is(o, out AllObjectImportsNode _))
            {
                yield return(new ExecuteCommandImportShareDefinitionList(_activator));
            }

            if (Is(o, out AllPermissionWindowsNode _))
            {
                yield return(new ExecuteCommandCreateNewPermissionWindow(_activator));
            }

            if (Is(o, out AllPluginsNode _))
            {
                yield return(new ExecuteCommandAddPlugins(_activator));

                yield return(new ExecuteCommandPrunePlugin(_activator));

                yield return(new ExecuteCommandExportPlugins(_activator));
            }

            if (Is(o, out AllRDMPRemotesNode _))
            {
                yield return(new ExecuteCommandCreateNewRemoteRDMP(_activator));
            }

            if (Is(o, out AllServersNode _))
            {
                yield return(new ExecuteCommandImportTableInfo(_activator, null, false));

                yield return(new ExecuteCommandBulkImportTableInfos(_activator));
            }

            if (Is(o, out IFilter filter))
            {
                yield return(new ExecuteCommandViewFilterMatchData(_activator, filter, ViewType.TOP_100));

                yield return(new ExecuteCommandViewFilterMatchData(_activator, filter, ViewType.Aggregate));
            }


            if (Is(o, out TableInfo ti))
            {
                yield return(new ExecuteCommandViewData(_activator, ti));

                yield return(new ExecuteCommandImportTableInfo(_activator, null, false)
                {
                    SuggestedCategory = New
                });

                yield return(new ExecuteCommandCreateNewCatalogueFromTableInfo(_activator, ti)
                {
                    SuggestedCategory = New
                });

                yield return(new ExecuteCommandUseCredentialsToAccessTableInfoData(_activator, null, ti));

                yield return(new ExecuteCommandScriptTable(_activator, ti));

                IAtomicCommand[] alterCommands = null;
                try
                {
                    alterCommands = new IAtomicCommand[]
                    {
                        new ExecuteCommandAlterTableName(_activator, ti)
                        {
                            SuggestedCategory = Alter
                        },
                        new ExecuteCommandAlterTableCreatePrimaryKey(_activator, ti)
                        {
                            SuggestedCategory = Alter
                        },
                        new ExecuteCommandAlterTableAddArchiveTrigger(_activator, ti)
                        {
                            SuggestedCategory = Alter
                        },
                        new ExecuteCommandAlterTableMakeDistinct(_activator, ti)
                        {
                            SuggestedCategory = Alter
                        }
                    };
                }
                catch (Exception ex)
                {
                    _activator.GlobalErrorCheckNotifier.OnCheckPerformed(new CheckEventArgs("Failed to build Alter commands", CheckResult.Fail, ex));
                }

                if (alterCommands != null)
                {
                    foreach (var item in alterCommands)
                    {
                        yield return(item);
                    }
                }

                yield return(new ExecuteCommandSyncTableInfo(_activator, ti, false, false));

                yield return(new ExecuteCommandSyncTableInfo(_activator, ti, true, false));

                yield return(new ExecuteCommandNewObject(_activator, () => new ColumnInfo(_activator.RepositoryLocator.CatalogueRepository, Guid.NewGuid().ToString(), "fish", ti))
                {
                    OverrideCommandName = "Add New ColumnInfo"
                });
            }

            if (Is(o, out ColumnInfo colInfo))
            {
                yield return(new ExecuteCommandViewData(_activator, ViewType.TOP_100, colInfo)
                {
                    SuggestedCategory = "View Data"
                });

                yield return(new ExecuteCommandViewData(_activator, ViewType.Aggregate, colInfo)
                {
                    SuggestedCategory = "View Data"
                });

                yield return(new ExecuteCommandViewData(_activator, ViewType.Distribution, colInfo)
                {
                    SuggestedCategory = "View Data"
                });

                yield return(new ExecuteCommandAlterColumnType(_activator, colInfo)
                {
                    SuggestedCategory = Alter
                });

                yield return(new ExecuteCommandSet(_activator, colInfo, typeof(ColumnInfo).GetProperty(nameof(ColumnInfo.IgnoreInLoads)))
                {
                    OverrideCommandName = $"Ignore In Loads ({colInfo.IgnoreInLoads})"
                });
            }

            if (Is(o, out AllStandardRegexesNode _))
            {
                yield return(new ExecuteCommandCreateNewStandardRegex(_activator));
            }

            if (Is(o, out ArbitraryFolderNode f))
            {
                if (f.CommandGetter != null)
                {
                    foreach (IAtomicCommand cmd in f.CommandGetter())
                    {
                        yield return(cmd);
                    }
                }
            }

            if (Is(o, out CacheProgress cp))
            {
                yield return(new ExecuteCommandSetPermissionWindow(_activator, cp));
            }

            if (Is(o, out SelectedDataSets sds))
            {
                yield return(new ExecuteCommandAddNewFilterContainer(_activator, sds));

                yield return(new ExecuteCommandImportFilterContainerTree(_activator, sds));

                yield return(new ExecuteCommandCreateNewFilter(_activator, sds));

                yield return(new ExecuteCommandCreateNewFilterFromCatalogue(_activator, sds));

                yield return(new ExecuteCommandViewExtractionSql(_activator, sds));

                yield return(new ExecuteCommandSetExtractionIdentifier(_activator, sds.GetCatalogue(), sds.ExtractionConfiguration, null));

                yield return(new ExecuteCommandAddExtractionProgress(_activator, sds));

                yield return(new ExecuteCommandResetExtractionProgress(_activator, sds));
            }

            if (Is(o, out ExtractionProgress progress))
            {
                yield return(new ExecuteCommandResetExtractionProgress(_activator, progress));
            }

            if (Is(o, out ExtractionConfiguration ec))
            {
                ///////////////////Change Cohorts//////////////

                yield return(new ExecuteCommandChooseCohort(_activator, ec));

                yield return(new ExecuteCommandAddParameter(_activator, ec, null, null, null));

                /////////////////Add Datasets/////////////
                yield return(new ExecuteCommandAddDatasetsToConfiguration(_activator, ec));

                yield return(new ExecuteCommandAddPackageToConfiguration(_activator, ec));

                yield return(new ExecuteCommandGenerateReleaseDocument(_activator, ec));

                if (ec.IsReleased)
                {
                    yield return(new ExecuteCommandUnfreezeExtractionConfiguration(_activator, ec));
                }
                else
                {
                    yield return(new ExecuteCommandFreezeExtractionConfiguration(_activator, ec));
                }

                yield return(new ExecuteCommandCloneExtractionConfiguration(_activator, ec));

                yield return(new ExecuteCommandResetExtractionProgress(_activator, ec, null));
            }

            if (Is(o, out ProjectCataloguesNode pcn))
            {
                yield return(new ExecuteCommandMakeCatalogueProjectSpecific(_activator).SetTarget(pcn.Project));

                yield return(new ExecuteCommandCreateNewCatalogueByImportingFile(_activator).SetTarget(pcn.Project));

                yield return(new ExecuteCommandCreateNewCatalogueByImportingExistingDataTable(_activator).SetTarget(pcn.Project));
            }

            if (Is(o, out ProjectCohortIdentificationConfigurationAssociationsNode pccan))
            {
                yield return(new ExecuteCommandAssociateCohortIdentificationConfigurationWithProject(_activator).SetTarget(pccan.Project));

                yield return(new ExecuteCommandCreateNewCohortIdentificationConfiguration(_activator).SetTarget(pccan.Project));
            }

            if (Is(o, out ProjectSavedCohortsNode savedCohortsNode))
            {
                yield return(new ExecuteCommandCreateNewCohortFromFile(_activator, null).SetTarget(savedCohortsNode.Project));

                yield return(new ExecuteCommandCreateNewCohortByExecutingACohortIdentificationConfiguration(_activator, null).SetTarget(savedCohortsNode.Project));

                yield return(new ExecuteCommandCreateNewCohortFromCatalogue(_activator).SetTarget(savedCohortsNode.Project));

                yield return(new ExecuteCommandImportAlreadyExistingCohort(_activator, null, savedCohortsNode.Project));
            }

            if (Is(o, out ExternalCohortTable ect))
            {
                yield return(new ExecuteCommandCreateNewCohortFromFile(_activator, ect));

                yield return(new ExecuteCommandCreateNewCohortByExecutingACohortIdentificationConfiguration(_activator, ect));

                yield return(new ExecuteCommandCreateNewCohortFromCatalogue(_activator, ect));

                yield return(new ExecuteCommandImportAlreadyExistingCohort(_activator, ect, null));
            }

            if (Is(o, out ExtractableCohort cohort))
            {
                yield return(new ExecuteCommandViewCohortSample(_activator, cohort, 100));

                yield return(new ExecuteCommandViewCohortSample(_activator, cohort, int.MaxValue, null, false)
                {
                    AskForFile = true,
                    OverrideCommandName = "Save Cohort To File...",
                    OverrideIcon = FamFamFamIcons.disk
                });

                yield return(new ExecuteCommandDeprecate(_activator, cohort, !cohort.IsDeprecated));
            }

            if (Is(o, out CohortAggregateContainer cohortAggregateContainer))
            {
                yield return(new ExecuteCommandSetContainerOperation(_activator, cohortAggregateContainer, SetOperation.EXCEPT)
                {
                    SuggestedCategory = SetContainerOperation
                });

                yield return(new ExecuteCommandSetContainerOperation(_activator, cohortAggregateContainer, SetOperation.UNION)
                {
                    SuggestedCategory = SetContainerOperation
                });

                yield return(new ExecuteCommandSetContainerOperation(_activator, cohortAggregateContainer, SetOperation.INTERSECT)
                {
                    SuggestedCategory = SetContainerOperation
                });

                yield return(new ExecuteCommandAddCohortSubContainer(_activator, cohortAggregateContainer)
                {
                    SuggestedCategory = Add
                });

                yield return(new ExecuteCommandAddCatalogueToCohortIdentificationSetContainer(_activator, cohortAggregateContainer)
                {
                    SuggestedCategory = Add
                });

                yield return(new ExecuteCommandAddAggregateConfigurationToCohortIdentificationSetContainer(_activator, cohortAggregateContainer, true)
                {
                    SuggestedCategory = Add
                });

                yield return(new ExecuteCommandAddAggregateConfigurationToCohortIdentificationSetContainer(_activator, cohortAggregateContainer, false)
                {
                    SuggestedCategory = Add
                });

                yield return(new ExecuteCommandImportCohortIdentificationConfiguration(_activator, null, cohortAggregateContainer)
                {
                    SuggestedCategory = Add
                });

                yield return(new ExecuteCommandUnMergeCohortIdentificationConfiguration(_activator, cohortAggregateContainer));
            }


            if (Is(o, out IArgument a))
            {
                yield return(new ExecuteCommandSetArgument(_activator, a));
            }

            if (Is(o, out IDisableable disable))
            {
                yield return(new ExecuteCommandDisableOrEnable(_activator, disable));
            }

            // If the root object is deletable offer deleting
            if (Is(o, out IDeleteable deletable))
            {
                yield return new ExecuteCommandDelete(_activator, deletable)
                       {
                           SuggestedShortcut = "Delete"
                       }
            }
            ;

            if (Is(o, out ReferenceOtherObjectDatabaseEntity reference))
            {
                yield return(new ExecuteCommandShowRelatedObject(_activator, reference));
            }

            if (Is(o, out INamed n))
            {
                yield return new ExecuteCommandRename(_activator, n)
                       {
                           SuggestedShortcut = "F2"
                       }
            }
            ;

            if (Is(o, out PipelineCompatibleWithUseCaseNode pcu))
            {
                yield return(new ExecuteCommandNewObject(_activator, typeof(Pipeline))
                {
                    OverrideCommandName = "New Pipeline"
                });

                yield return(new ExecuteCommandClonePipeline(_activator, pcu.Pipeline));

                yield return(new ExecuteCommandAddPipelineComponent(_activator, pcu.Pipeline, pcu.UseCase));
            }
            else
            if (Is(o, out Pipeline pipeline))
            {
                yield return(new ExecuteCommandNewObject(_activator, typeof(Pipeline))
                {
                    OverrideCommandName = "New Pipeline"
                });

                yield return(new ExecuteCommandClonePipeline(_activator, pipeline));

                yield return(new ExecuteCommandAddPipelineComponent(_activator, pipeline, null));
            }

            if (Is(o, out StandardPipelineUseCaseNode psu))
            {
                yield return(new ExecuteCommandNewObject(_activator, typeof(Pipeline))
                {
                    OverrideCommandName = "New Pipeline"
                });
            }
        }
Exemple #22
0
 public ToolStripItem CreateToolStripItem(IAtomicCommand command)
 {
     return(new AtomicCommandToolStripItem(command, _activator));
 }
Exemple #23
0
 public void OnCommandExecutionException(IAtomicCommand instance, Exception exception)
 {
     ExceptionViewer.Show(exception);
 }