public void HelpStrategy_Should_WriteHelpTextWithOptions()
        {
            // Arrange help data
            var helpData = new HelpData
            {
                CommandName       = sampleCommandName,
                HelpTextFirstLine = { { sampleFirstLineText, string.Empty } },
                Options           = { { sampleOption, sampleOptionDescription } },
                HelpTextLastLine  = { { string.Empty, sampleLastLineText } },
                LogMessage        = sampleLogMessage,
                HelpText          = sampleHelpText,
            };

            AppioLogger.RegisterListener(_loggerListenerMock.Object);

            var helpStrategy = new HelpStrategy <object>(helpData);

            helpStrategy.CommandFactory = _factoryMock.Object;

            // Act
            var strategyResult = helpStrategy.Execute(new string[] { });

            // Assert
            Assert.IsTrue(strategyResult.Success);
            Assert.IsNotNull(strategyResult.OutputMessages);

            Assert.IsTrue(strategyResult.OutputMessages.Contains(new KeyValuePair <string, string>(sampleFirstLineText, string.Empty)));
            Assert.IsTrue(strategyResult.OutputMessages.Contains(new KeyValuePair <string, string>("Options:", string.Empty)));
            Assert.IsTrue(strategyResult.OutputMessages.Contains(new KeyValuePair <string, string>(sampleOption, sampleOptionDescription)));
            Assert.IsTrue(strategyResult.OutputMessages.Contains(new KeyValuePair <string, string>(string.Empty, sampleLastLineText)));

            _loggerListenerMock.Verify(x => x.Info(sampleLogMessage), Times.Once);
            AppioLogger.RemoveListener(_loggerListenerMock.Object);
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            InitializeConsole();

            bool isRunning = true;

            while (isRunning)
            {
                CurrentCommand = GetUserInput();
                try
                {
                    switch (CurrentCommand)
                    {
                    case Command.Exit:
                        isRunning = false;
                        break;

                    case Command.Clear:
                        Console.Clear();
                        break;

                    case Command.ImageMode:
                        var imageController = new ImageStrategy();
                        PrintResults(imageController.Run());
                        break;

                    case Command.MusicMode:
                        var musicController = new MusicStrategy();
                        PrintResults(musicController.Run());
                        break;

                    case Command.AllMode:
                        imageController = new ImageStrategy();
                        PrintResults(imageController.Run());

                        musicController = new MusicStrategy();
                        PrintResults(musicController.Run());
                        break;

                    case Command.HelpMode:
                        var helpController = new HelpStrategy();
                        PrintResults(helpController.Run());
                        break;

                    case Command.NoCommand:
                        PrintSyntaxMessage("No command found.");
                        break;

                    default:
                        throw new Exception("Unknown command parse error! Dats BAD!");
                    }
                }
                catch (Exception e)
                {
                    PrintErrorMessage(e.Message);
                }
            }
        }
Exemplo n.º 3
0
        // APPIO Publish command
        private static PublishStrategy CreatePublishStrategy(IFileSystem fileSystem)
        {
            // Publish command help first lines
            var publishHelpStrategyHelpText = new MessageLines
            {
                { string.Empty, HelpTextValues.PublishFirstLine },
                { string.Empty, string.Empty },
                { string.Empty, HelpTextValues.GeneralUsage },
                { string.Empty, HelpTextValues.PublishCallDescription }
            };

            // Publish command options
            var nameOption     = new StringBuilder(Constants.PublishCommandOptions.Name).Append(Constants.HelpOptionSeparator).Append(Constants.PublishCommandOptions.VerboseName).ToString();
            var helpOption     = new StringBuilder(Constants.PublishCommandOptions.Help).Append(Constants.HelpOptionSeparator).Append(Constants.PublishCommandOptions.VerboseHelp).ToString();
            var publishOptions = new MessageLines
            {
                { nameOption, HelpTextValues.OptionNameDescription },
                { helpOption, HelpTextValues.OptionHelpDescription }
            };

            // Publish help strategy
            var publishHelpStrategyData = new HelpData
            {
                CommandName       = Constants.PublishCommandOptions.Help,
                HelpTextFirstLine = publishHelpStrategyHelpText,
                Options           = publishOptions,
                LogMessage        = LoggingText.OpcuaappPublishHelpCalled,
                HelpText          = HelpTextValues.PublishHelpArgumentCommandDescription,
            };

            var publishHelpStrategy = new HelpStrategy <PublishStrategy>(publishHelpStrategyData);

            publishHelpStrategyData.CommandName = Constants.PublishCommandOptions.VerboseHelp;

            var publishHelpVerboseStrategy = new HelpStrategy <PublishStrategy>(publishHelpStrategyData);

            var publishStrategies = new ICommand <PublishStrategy>[]
            {
                new PublishNameStrategy(Constants.PublishCommandOptions.Name, fileSystem),
                new PublishNameStrategy(Constants.PublishCommandOptions.VerboseName, fileSystem),
                publishHelpStrategy,
                publishHelpVerboseStrategy,
            };

            var publishStrategyCommandFactory = new CommandFactory <PublishStrategy>(publishStrategies, Constants.PublishCommandOptions.Help);

            publishHelpStrategy.CommandFactory        = publishStrategyCommandFactory;
            publishHelpVerboseStrategy.CommandFactory = publishStrategyCommandFactory;

            return(new PublishStrategy(publishStrategyCommandFactory));
        }
Exemplo n.º 4
0
        // APPIO Build command
        private static BuildStrategy CreateBuildStrategy(IFileSystem fileSystem)
        {
            // Build command help first lines
            var buildHelpStrategyHelpText = new MessageLines
            {
                { string.Empty, HelpTextValues.BuildFirstLine },
                { string.Empty, string.Empty },
                { string.Empty, HelpTextValues.GeneralUsage },
                { string.Empty, HelpTextValues.BuildCallDescription }
            };

            // Build command options
            var nameOption   = new StringBuilder(Constants.BuildCommandOptions.Name).Append(Constants.HelpOptionSeparator).Append(Constants.BuildCommandOptions.VerboseName).ToString();
            var helpOption   = new StringBuilder(Constants.BuildCommandOptions.Help).Append(Constants.HelpOptionSeparator).Append(Constants.BuildCommandOptions.VerboseHelp).ToString();
            var buildOptions = new MessageLines
            {
                { nameOption, HelpTextValues.OptionNameDescription },
                { helpOption, HelpTextValues.OptionHelpDescription }
            };

            // Build help strategy
            var buildHelpStrategyData = new HelpData
            {
                CommandName       = Constants.BuildCommandOptions.Help,
                HelpTextFirstLine = buildHelpStrategyHelpText,
                Options           = buildOptions,
                LogMessage        = LoggingText.AppioHelpForBuildCommandCalled,
                HelpText          = HelpTextValues.BuildHelpArgumentCommandDescription,
            };

            var buildHelpStrategy = new HelpStrategy <BuildStrategy>(buildHelpStrategyData);

            buildHelpStrategyData.CommandName = Constants.BuildCommandOptions.VerboseHelp;

            var buildHelpVerboseStrategy = new HelpStrategy <BuildStrategy>(buildHelpStrategyData);

            var buildStrategies = new ICommand <BuildStrategy>[]
            {
                new BuildNameStrategy(Constants.BuildCommandOptions.Name, fileSystem),
                new BuildNameStrategy(Constants.BuildCommandOptions.VerboseName, fileSystem),
                buildHelpStrategy,
                buildHelpVerboseStrategy
            };

            var buildStrategyCommandFactory = new CommandFactory <BuildStrategy>(buildStrategies, Constants.BuildCommandOptions.Help);

            buildHelpStrategy.CommandFactory        = buildStrategyCommandFactory;
            buildHelpVerboseStrategy.CommandFactory = buildStrategyCommandFactory;

            return(new BuildStrategy(buildStrategyCommandFactory));
        }
Exemplo n.º 5
0
        // APPIO Deploy command
        private static DeployStrategy CreateDeployStrategy(IFileSystem fileSystem)
        {
            // Deploy command help first lines
            var deployHelpStrategyHelpText = new MessageLines
            {
                { string.Empty, HelpTextValues.DeployFirstLine },
                { string.Empty, string.Empty },
                { string.Empty, HelpTextValues.GeneralUsage },
                { string.Empty, HelpTextValues.DeployCallDescription }
            };

            // Deploy command options
            var nameOption    = new StringBuilder(Constants.DeployCommandOptions.Name).Append(Constants.HelpOptionSeparator).Append(Constants.DeployCommandOptions.VerboseName).ToString();
            var helpOption    = new StringBuilder(Constants.DeployCommandOptions.Help).Append(Constants.HelpOptionSeparator).Append(Constants.DeployCommandOptions.VerboseHelp).ToString();
            var deployOptions = new MessageLines
            {
                { nameOption, HelpTextValues.OptionNameDescription },
                { helpOption, HelpTextValues.OptionHelpDescription }
            };

            var deployHelpStrategyData = new HelpData
            {
                CommandName       = Constants.DeployCommandOptions.Help,
                HelpTextFirstLine = deployHelpStrategyHelpText,
                Options           = deployOptions,
                LogMessage        = LoggingText.AppioHelpForDeployCommandCalled,
                HelpText          = HelpTextValues.DeployHelpArgumentCommandDescription,
            };

            var deployHelpStrategy = new HelpStrategy <DeployStrategy>(deployHelpStrategyData);

            deployHelpStrategyData.CommandName = Constants.DeployCommandOptions.VerboseHelp;

            var deployVerboseHelpStrategy = new HelpStrategy <DeployStrategy>(deployHelpStrategyData);

            var deployStrategies = new ICommand <DeployStrategy>[]
            {
                new DeployNameStrategy(Constants.DeployCommandOptions.Name, fileSystem),
                new DeployNameStrategy(Constants.DeployCommandOptions.VerboseName, fileSystem),
                deployHelpStrategy,
                deployVerboseHelpStrategy
            };

            var deployStrategyCommandFactory = new CommandFactory <DeployStrategy>(deployStrategies, Constants.DeployCommandOptions.Help);

            deployHelpStrategy.CommandFactory        = deployStrategyCommandFactory;
            deployVerboseHelpStrategy.CommandFactory = deployStrategyCommandFactory;

            return(new DeployStrategy(deployStrategyCommandFactory));
        }
        public void HelpStrategy_Should_ImplementICommandOfAnyType()
        {
            // Arrange
            var helpData = new HelpData
            {
                CommandName       = "any-name",
                HelpTextFirstLine = { { "any-text", "" } },
                HelpTextLastLine  = { { "any-other-text", "" } },
                LogMessage        = "any-message",
                HelpText          = "any-text",
            };

            // Act
            var objectUnderTest = new HelpStrategy <object>(helpData);

            // Assert
            Assert.IsInstanceOf <ICommand <object> >(objectUnderTest);
        }
        public void ShouldReturnCommandName()
        {
            // Arrange
            var helpData = new HelpData
            {
                CommandName       = "any-name",
                HelpTextFirstLine = { { "any-text", "" } },
                HelpTextLastLine  = { { "any-other-text", "" } },
                LogMessage        = "any-message",
                HelpText          = "any-text",
            };

            var helpStrategy = new HelpStrategy <object>(helpData);

            // Act
            var commandName = helpStrategy.Name;

            // Assert
            Assert.AreEqual("any-name", commandName);
        }
        public void HelpStrategy_Should_WriteSparseHelpTextIfNoCommandFactoryIsProvided()
        {
            // Arrange
            var helpData = new HelpData
            {
                CommandName       = "any-name",
                HelpTextFirstLine = { { "any-text", "" } },
                HelpTextLastLine  = { { "", "any-other-text" } },
                LogMessage        = "any-message",
                HelpText          = "any-text",
            };

            var helpStrategy = new HelpStrategy <object>(helpData);

            // Act
            var strategyResult = helpStrategy.Execute(new string[] { });

            // Assert
            Assert.IsTrue(strategyResult.Success);
            Assert.IsNotNull(strategyResult.OutputMessages);
            Assert.AreEqual(string.Empty, strategyResult.OutputMessages.First().Value);
            Assert.IsTrue(strategyResult.OutputMessages.Contains(new KeyValuePair <string, string>("any-text", string.Empty)));
            Assert.IsTrue(strategyResult.OutputMessages.Contains(new KeyValuePair <string, string>(string.Empty, "any-other-text")));
        }
Exemplo n.º 9
0
        // APPIO Reference command
        private static ReferenceStrategy CreateReferenceStrategy(IFileSystem fileSystem)
        {
            // Reference command help first lines
            var referenceHelpStrategyHelpText = new MessageLines
            {
                { string.Empty, HelpTextValues.ReferenceFirstLine },
                { string.Empty, string.Empty },
                { string.Empty, HelpTextValues.GeneralUsage },
                { string.Empty, HelpTextValues.ReferenceCallDescription }
            };

            // Reference command arguments
            var referenceArguments = new MessageLines
            {
                { Constants.ReferenceCommandArguments.Add, string.Empty },
                { Constants.ReferenceCommandArguments.Remove, string.Empty }
            };

            // Reference command options
            var clientOption = new StringBuilder(Constants.ReferenceCommandOptions.Client).Append(Constants.HelpOptionSeparator).Append(Constants.ReferenceCommandOptions.VerboseClient).ToString();
            var serverOption = new StringBuilder(Constants.ReferenceCommandOptions.Server).Append(Constants.HelpOptionSeparator).Append(Constants.ReferenceCommandOptions.VerboseServer).ToString();
            var helpOption   = new StringBuilder(Constants.ReferenceCommandOptions.Help).Append(Constants.HelpOptionSeparator).Append(Constants.ReferenceCommandOptions.VerboseHelp).ToString();

            var referenceOptions = new MessageLines
            {
                { clientOption, HelpTextValues.ReferenceCommandOptionClientDescription },
                { serverOption, HelpTextValues.ReferenceCommandOptionServerDescription },
                { helpOption, HelpTextValues.OptionHelpDescription },
            };

            // Reference help strategy
            var referenceHelpStrategyData = new HelpData
            {
                CommandName       = Constants.ReferenceCommandOptions.Help,
                HelpTextFirstLine = referenceHelpStrategyHelpText,
                Arguments         = referenceArguments,
                Options           = referenceOptions,
                LogMessage        = LoggingText.AppioHelpForReferenceCommand,
                HelpText          = HelpTextValues.ReferenceHelpArgumentCommandDescription,
            };

            var referenceHelpStrategy = new HelpStrategy <ReferenceStrategy>(referenceHelpStrategyData);

            referenceHelpStrategyData.CommandName = Constants.ReferenceCommandOptions.VerboseHelp;

            var referenceHelpVerboseStrategy = new HelpStrategy <ReferenceStrategy>(referenceHelpStrategyData);

            var referenceStrategies = new ICommand <ReferenceStrategy>[]
            {
                new ReferenceAddCommandStrategy(fileSystem),
                new ReferenceRemoveCommandStrategy(fileSystem),
                referenceHelpStrategy,
                referenceHelpVerboseStrategy,
            };

            var referenceStrategyCommandFactory = new CommandFactory <ReferenceStrategy>(referenceStrategies, Constants.ReferenceCommandOptions.Help);

            referenceHelpStrategy.CommandFactory        = referenceStrategyCommandFactory;
            referenceHelpVerboseStrategy.CommandFactory = referenceStrategyCommandFactory;

            return(new ReferenceStrategy(referenceStrategyCommandFactory));
        }
Exemplo n.º 10
0
        // APPIO Sln command
        private static SlnStrategy CreateSlnStrategy(IFileSystem fileSystem)
        {
            // Sln command help first lines
            var slnHelpStrategyHelpText = new MessageLines
            {
                { string.Empty, HelpTextValues.SlnFirstLine },
                { string.Empty, string.Empty },
                { string.Empty, HelpTextValues.GeneralUsage },
                { string.Empty, HelpTextValues.SlnCallDescription }
            };

            // Sln command arguments
            var slnArguments = new MessageLines
            {
                { Constants.SlnCommandArguments.Add, HelpTextValues.SlnCommandArgumentAddDescription },
                { Constants.SlnCommandArguments.Remove, HelpTextValues.SlnCommandArtgumentRemoveDescription },
                { Constants.SlnCommandArguments.Build, HelpTextValues.SlnCommandArtgumentBuildDescription },
                { Constants.SlnCommandArguments.Publish, HelpTextValues.SlnCommandArtgumentPublishDescription },
                { Constants.SlnCommandArguments.Deploy, HelpTextValues.SlnCommandArtgumentDeployDescription }
            };

            // Sln command options
            var solutionOption = new StringBuilder(Constants.SlnCommandOptions.Solution).Append(Constants.HelpOptionSeparator).Append(Constants.SlnCommandOptions.VerboseSolution).ToString();
            var projectOption  = new StringBuilder(Constants.SlnCommandOptions.Project).Append(Constants.HelpOptionSeparator).Append(Constants.SlnCommandOptions.VerboseProject).ToString();
            var helpOption     = new StringBuilder(Constants.SlnCommandOptions.Help).Append(Constants.HelpOptionSeparator).Append(Constants.SlnCommandOptions.VerboseHelp).ToString();

            var slnOptions = new MessageLines
            {
                { solutionOption, HelpTextValues.SlnCommandOptionSolutionDescription },
                { projectOption, HelpTextValues.SlnCommandOptionProjectDescription },
                { helpOption, HelpTextValues.OptionHelpDescription },
            };

            // Sln help strategy
            var slnHelpStrategyData = new HelpData
            {
                CommandName       = Constants.SlnCommandOptions.Help,
                HelpTextFirstLine = slnHelpStrategyHelpText,
                Arguments         = slnArguments,
                Options           = slnOptions,
                LogMessage        = LoggingText.AppioHelpForSlnCommand,
                HelpText          = HelpTextValues.SlnHelpArgumentCommandDescription,
            };

            var slnHelpStrategy = new HelpStrategy <SlnStrategy>(slnHelpStrategyData);

            slnHelpStrategyData.CommandName = Constants.SlnCommandOptions.VerboseHelp;

            var slnHelpVerboseStrategy = new HelpStrategy <SlnStrategy>(slnHelpStrategyData);

            var SlnBuildCommandData = new SlnOperationData();

            SlnBuildCommandData.CommandName          = Constants.CommandName.Build;
            SlnBuildCommandData.FileSystem           = fileSystem;
            SlnBuildCommandData.Subcommand           = new BuildNameStrategy(Constants.CommandName.Build, fileSystem);
            SlnBuildCommandData.SuccessLoggerMessage = LoggingText.SlnBuildSuccess;
            SlnBuildCommandData.SuccessOutputMessage = OutputText.SlnBuildSuccess;
            SlnBuildCommandData.HelpText             = HelpTextValues.SlnBuildNameArgumentCommandDescription;

            var SlnDeployCommandData = new SlnOperationData();

            SlnDeployCommandData.CommandName          = Constants.CommandName.Deploy;
            SlnDeployCommandData.FileSystem           = fileSystem;
            SlnDeployCommandData.Subcommand           = new DeployNameStrategy(Constants.CommandName.Deploy, fileSystem);
            SlnDeployCommandData.SuccessLoggerMessage = LoggingText.SlnDeploySuccess;
            SlnDeployCommandData.SuccessOutputMessage = OutputText.SlnDeploySuccess;
            SlnDeployCommandData.HelpText             = HelpTextValues.SlnDeployNameArgumentCommandDescription;

            var SlnPublishCommandData = new SlnOperationData();

            SlnPublishCommandData.CommandName          = Constants.CommandName.Publish;
            SlnPublishCommandData.FileSystem           = fileSystem;
            SlnPublishCommandData.Subcommand           = new PublishNameStrategy(Constants.CommandName.Publish, fileSystem);
            SlnPublishCommandData.SuccessLoggerMessage = LoggingText.SlnPublishSuccess;
            SlnPublishCommandData.SuccessOutputMessage = OutputText.SlnPublishSuccess;
            SlnPublishCommandData.HelpText             = HelpTextValues.SlnPublishNameArgumentCommandDescription;

            var slnStrategies = new ICommand <SlnStrategy>[]
            {
                new SlnAddCommandStrategy(fileSystem),
                new SlnOperationCommandStrategy(SlnBuildCommandData),
                new SlnOperationCommandStrategy(SlnDeployCommandData),
                new SlnOperationCommandStrategy(SlnPublishCommandData),
                new SlnRemoveCommandStrategy(fileSystem),
                slnHelpStrategy,
                slnHelpVerboseStrategy,
            };

            var slnStrategyCommandFactory = new CommandFactory <SlnStrategy>(slnStrategies, Constants.SlnCommandOptions.Help);

            slnHelpStrategy.CommandFactory        = slnStrategyCommandFactory;
            slnHelpVerboseStrategy.CommandFactory = slnStrategyCommandFactory;

            return(new SlnStrategy(slnStrategyCommandFactory));
        }
Exemplo n.º 11
0
        public static ICommandFactory <ObjectModel> CreateCommandFactory(IReflection reflectionWrapper)
        {
            var reflection           = reflectionWrapper;
            var fileSystem           = new FileSystemWrapper();
            var certificateGenerator = new CertificateGenerator(fileSystem);

            var commands = new List <ICommand <ObjectModel> >();

            var buildStrategy = CreateBuildStrategy(fileSystem);

            commands.Add(buildStrategy);
            commands.Add(new HelloStrategy());

            var helpStrategy = new HelpStrategy <ObjectModel>(CreateHelpData(Constants.CommandName.Help));

            commands.Add(helpStrategy);

            var shortHelpStrategy = new HelpStrategy <ObjectModel>(CreateHelpData(Constants.CommandName.ShortHelp));

            commands.Add(shortHelpStrategy);

            var helpDashStrategy = new HelpStrategy <ObjectModel>(CreateHelpData(Constants.CommandName.HelpDash));

            commands.Add(helpDashStrategy);

            var helpDashVerboseStrategy = new HelpStrategy <ObjectModel>(CreateHelpData(Constants.CommandName.HelpDashVerbose));

            commands.Add(helpDashVerboseStrategy);

            var newStrategy = CreateNewStrategy(fileSystem, certificateGenerator);

            commands.Add(newStrategy);

            var publishStrategy = CreatePublishStrategy(fileSystem);

            commands.Add(publishStrategy);

            var deployStrategy = CreateDeployStrategy(fileSystem);

            commands.Add(deployStrategy);

            commands.Add(new VersionStrategy(reflection));

            var cleanStrategy = CreateCleanStrategy(fileSystem);

            commands.Add(cleanStrategy);

            var importStrategy = CreateImportStrategy(fileSystem);

            commands.Add(importStrategy);

            var generateStrategy = CreateGenerateStrategy(fileSystem, certificateGenerator);

            commands.Add(generateStrategy);

            var slnStrategy = CreateSlnStrategy(fileSystem);

            commands.Add(slnStrategy);

            var referenceStrategy = CreateReferenceStrategy(fileSystem);

            commands.Add(referenceStrategy);

            var factory = new CommandFactory <ObjectModel>(commands, Constants.CommandName.Help);

            helpStrategy.CommandFactory            = factory;
            shortHelpStrategy.CommandFactory       = factory;
            helpDashStrategy.CommandFactory        = factory;
            helpDashVerboseStrategy.CommandFactory = factory;

            return(factory);
        }
Exemplo n.º 12
0
        // APPIO Generate command
        private static GenerateStrategy CreateGenerateStrategy(IFileSystem fileSystem, AbstractCertificateGenerator certificateGenerator)
        {
            // Generate command help first lines
            var generateHelpStrategyHelpText = new MessageLines
            {
                { string.Empty, HelpTextValues.GenerateFirstLine },
                { string.Empty, string.Empty },
                { string.Empty, HelpTextValues.GeneralUsage },
                { string.Empty, HelpTextValues.GenerateCallDescription }
            };

            // Generate command arguments
            var generateArguments = new MessageLines
            {
                { Constants.ImportCommandArguments.InformationModel, string.Empty },
                { Constants.ImportCommandArguments.Certificate, string.Empty }
            };

            // Generate command options
            var nameOption = new StringBuilder(Constants.GenerateCommandOptions.Name).Append(Constants.HelpOptionSeparator).Append(Constants.GenerateCommandOptions.VerboseName).ToString();
            var helpOption = new StringBuilder(Constants.GenerateCommandOptions.Help).Append(Constants.HelpOptionSeparator).Append(Constants.GenerateCommandOptions.VerboseHelp).ToString();

            var generateOptions = new MessageLines
            {
                { nameOption, HelpTextValues.OptionNameDescription },
                { helpOption, HelpTextValues.OptionHelpDescription },
                { Constants.GenerateCertificateCommandArguments.VerboseKeySize, HelpTextValues.GenerateCommandOptionKeySizeDescription },
                { Constants.GenerateCertificateCommandArguments.VerboseDays, HelpTextValues.GenerateCommandOptionDaysDescription },
                { Constants.GenerateCertificateCommandArguments.VerboseOrganization, HelpTextValues.GenerateCommandOptionOrganizationDescription }
            };

            // Generate help strategy
            var generateHelpStrategyData = new HelpData
            {
                CommandName       = Constants.GenerateCommandOptions.Help,
                HelpTextFirstLine = generateHelpStrategyHelpText,
                Arguments         = generateArguments,
                Options           = generateOptions,
                LogMessage        = LoggingText.AppioHelpForGenerateCommand,
                HelpText          = HelpTextValues.GenerateHelpArgumentCommandDescription,
            };

            var generateHelpStrategy = new HelpStrategy <GenerateStrategy>(generateHelpStrategyData);

            generateHelpStrategyData.CommandName = Constants.GenerateCommandOptions.VerboseHelp;

            var generateHelpStrategyVerbose = new HelpStrategy <GenerateStrategy>(generateHelpStrategyData);

            var modelValidator   = new ModelValidator(fileSystem);
            var nodesetGenerator = new NodesetGenerator(fileSystem, modelValidator);

            var generateSubCommands = new ICommand <GenerateStrategy>[]
            {
                new GenerateInformationModelStrategy(Constants.CommandName.GenerateInformationModel, fileSystem, modelValidator, nodesetGenerator),
                new GenerateCertificateStrategy(fileSystem, certificateGenerator),
                generateHelpStrategy,
                generateHelpStrategyVerbose
            };

            var generateStrategyCommandFactory = new CommandFactory <GenerateStrategy>(generateSubCommands, Constants.GenerateCommandOptions.Help);

            generateHelpStrategy.CommandFactory        = generateStrategyCommandFactory;
            generateHelpStrategyVerbose.CommandFactory = generateStrategyCommandFactory;

            return(new GenerateStrategy(generateStrategyCommandFactory));
        }
Exemplo n.º 13
0
        // APPIO Import Strategy
        private static ImportStrategy CreateImportStrategy(IFileSystem fileSystem)
        {
            // Import command help first lines
            var importHelpStrategyHelpText = new MessageLines
            {
                { string.Empty, HelpTextValues.ImportFirstLine },
                { string.Empty, string.Empty },
                { string.Empty, HelpTextValues.GeneralUsage },
                { string.Empty, HelpTextValues.ImportCallDescription }
            };

            // Improt command arguments
            var importArguments = new MessageLines
            {
                { Constants.ImportCommandArguments.InformationModel, string.Empty },
                { Constants.ImportCommandArguments.Certificate, string.Empty }
            };

            // Import command options
            var nameOption         = new StringBuilder(Constants.ImportCommandOptions.Name).Append(Constants.HelpOptionSeparator).Append(Constants.ImportCommandOptions.VerboseName).ToString();
            var pathOption         = new StringBuilder(Constants.ImportCommandOptions.Path).Append(Constants.HelpOptionSeparator).Append(Constants.ImportCommandOptions.VerbosePath).ToString();
            var typesOption        = new StringBuilder(Constants.ImportCommandOptions.Types).Append(Constants.HelpOptionSeparator).Append(Constants.ImportCommandOptions.VerboseTypes).ToString();
            var helpOption         = new StringBuilder(Constants.ImportCommandOptions.Help).Append(Constants.HelpOptionSeparator).Append(Constants.ImportCommandOptions.VerboseHelp).ToString();
            var sampleOption       = new StringBuilder(Constants.ImportCommandOptions.Sample).Append(Constants.HelpOptionSeparator).Append(Constants.ImportCommandOptions.VerboseSample).ToString();
            var keyOption          = new StringBuilder(Constants.ImportCertificateCommandArguments.Key).Append(Constants.HelpOptionSeparator).Append(Constants.ImportCertificateCommandArguments.VerboseKey).ToString();
            var certiciateOption   = new StringBuilder(Constants.ImportCertificateCommandArguments.Certificate).Append(Constants.HelpOptionSeparator).Append(Constants.ImportCertificateCommandArguments.VerboseCertificate).ToString();
            var clientServerOption = new StringBuilder(Constants.ImportCertificateCommandArguments.VerboseClient).Append(" or ").Append(Constants.ImportCertificateCommandArguments.VerboseServer).ToString();

            var importOptions = new MessageLines
            {
                { nameOption, HelpTextValues.OptionNameDescription },
                { pathOption, HelpTextValues.ImportCommandOptionPathDescription },
                { typesOption, HelpTextValues.ImportCommandOptionTypesDescription },
                { helpOption, HelpTextValues.OptionHelpDescription },
                { sampleOption, HelpTextValues.ImportCommandOptionSampleDescription },
                { keyOption, HelpTextValues.ImportCommandOptionKeyDescription },
                { certiciateOption, HelpTextValues.ImportCommandOptionCertificateDescription },
                { clientServerOption, HelpTextValues.ImportCommandOptionClientServerDescription }
            };

            // Import help strategy
            var importHelpStrategyData = new HelpData
            {
                CommandName       = Constants.ImportCommandOptions.Help,
                HelpTextFirstLine = importHelpStrategyHelpText,
                Arguments         = importArguments,
                Options           = importOptions,
                LogMessage        = LoggingText.AppioHelpForImportInformationModel,
                HelpText          = HelpTextValues.ImportHelpArgumentCommandDescription,
            };

            var importHelpStrategy = new HelpStrategy <ImportStrategy>(importHelpStrategyData);

            importHelpStrategyData.CommandName = Constants.ImportCommandOptions.VerboseHelp;

            var importHelpStrategyVerbose = new HelpStrategy <ImportStrategy>(importHelpStrategyData);
            var importCommands            = new ICommand <ImportStrategy>[]
            {
                new ImportInformationModelCommandStrategy(fileSystem, new ModelValidator(fileSystem)),
                new ImportCertificateStrategy(fileSystem),
                importHelpStrategy,
                importHelpStrategyVerbose
            };

            var importStrategyCommandFactory = new CommandFactory <ImportStrategy>(importCommands, Constants.ImportCommandOptions.Help);

            importHelpStrategy.CommandFactory        = importStrategyCommandFactory;
            importHelpStrategyVerbose.CommandFactory = importStrategyCommandFactory;

            return(new ImportStrategy(importStrategyCommandFactory));
        }
Exemplo n.º 14
0
        // APPIO New command
        private static NewStrategy CreateNewStrategy(IFileSystem fileSystem, AbstractCertificateGenerator certificateGenerator)
        {
            // New command help first lines
            var newHelpStrategyHelpText = new MessageLines
            {
                { string.Empty, HelpTextValues.NewFirstLine },
                { string.Empty, string.Empty },
                { string.Empty, HelpTextValues.GeneralUsage },
                { string.Empty, HelpTextValues.NewCallDescription },
            };

            // New command arguments
            var newArguments = new MessageLines
            {
                { Constants.NewCommandArguments.OpcuaApp, string.Empty },
                { Constants.NewCommandArguments.Sln, string.Empty }
            };

            // New command options
            var nameOption = new StringBuilder(Constants.NewCommandOptions.Name).Append(Constants.HelpOptionSeparator).Append(Constants.NewCommandOptions.VerboseName).ToString();
            var helpOption = new StringBuilder(Constants.NewCommandOptions.Help).Append(Constants.HelpOptionSeparator).Append(Constants.NewCommandOptions.VerboseHelp).ToString();
            var typeOption = new StringBuilder(Constants.NewCommandOptions.Type).Append(Constants.HelpOptionSeparator).Append(Constants.NewCommandOptions.VerboseType).ToString();
            var portOption = new StringBuilder(Constants.NewCommandOptions.Port).Append(Constants.HelpOptionSeparator).Append(Constants.NewCommandOptions.VerbosePort).ToString();
            var urlOption  = new StringBuilder(Constants.NewCommandOptions.Url).Append(Constants.HelpOptionSeparator).Append(Constants.NewCommandOptions.VerboseUrl).ToString();

            var newOptions = new MessageLines
            {
                { nameOption, HelpTextValues.NewCommandOptionNameDescription },
                { helpOption, HelpTextValues.OptionHelpDescription },
                { typeOption, HelpTextValues.NewCommandOptionTypeDescription },
                { portOption, HelpTextValues.NewCommandOptionPortDescription },
                { urlOption, HelpTextValues.NewCommandOptionUrlDescription },
                { Constants.NewCommandOptions.VerboseNoCert, HelpTextValues.NewCommandOptionNoCertDescription }
            };

            // New help strategy
            var newHelpStrategyData = new HelpData
            {
                CommandName       = Constants.NewCommandOptions.Help,
                HelpTextFirstLine = newHelpStrategyHelpText,
                Arguments         = newArguments,
                Options           = newOptions,
                LogMessage        = LoggingText.AppioHelpForNewCommandCalled,
                HelpText          = HelpTextValues.NewHelpArgumentCommandDescription,
            };

            var newHelpStrategy = new HelpStrategy <NewStrategy>(newHelpStrategyData);

            newHelpStrategyData.CommandName = Constants.NewCommandOptions.VerboseHelp;

            var newHelpVerboseStrategy = new HelpStrategy <NewStrategy>(newHelpStrategyData);

            var newStrategies = new ICommand <NewStrategy>[]
            {
                new NewSlnCommandStrategy(fileSystem),
                new NewOpcuaAppCommandStrategy(fileSystem, certificateGenerator),
                newHelpStrategy,
                newHelpVerboseStrategy,
            };

            var newStrategyCommandFactory = new CommandFactory <NewStrategy>(newStrategies, Constants.NewCommandOptions.Help);

            newHelpStrategy.CommandFactory        = newStrategyCommandFactory;
            newHelpVerboseStrategy.CommandFactory = newStrategyCommandFactory;

            return(new NewStrategy(newStrategyCommandFactory));
        }