예제 #1
0
        public MovePathCommand(
            IFileService fileService)
            : base(typeof(MovePathCommand).Namespace, nameof(MovePathCommand), HelpDefinition)
        {
            CommandSourcePathParameter = new CommandParameterDefinition(
                "sourcepath",
                CommandParameterDefinition.TypeValue.String,
                "Source file or folder for move",
                "sp");

            CommandDestinationFolderParameter = new CommandParameterDefinition(
                "destionationfolder",
                CommandParameterDefinition.TypeValue.String,
                "destination folder",
                "df");

            CommandPatternParameter = new CommandParameterDefinition(
                "pattern",
                CommandParameterDefinition.TypeValue.String,
                "file pattern if move a folder. Default value: *.*",
                "p");

            CommandParametersDefinition.Add(CommandSourcePathParameter);
            CommandParametersDefinition.Add(CommandDestinationFolderParameter);
            CommandParametersDefinition.Add(CommandPatternParameter);

            FileService = fileService ?? throw new ArgumentNullException(nameof(fileService));
        }
예제 #2
0
        public ZipCommand(
            IFileService fileService)
            : base(typeof(ZipCommand).Namespace, nameof(ZipCommand), HelpDefinition)
        {
            CommandPathParameter = new CommandParameterDefinition(
                "path",
                CommandParameterDefinition.TypeValue.String,
                "Indicates the path (file or directory) for zip",
                "p");

            CommandParametersDefinition.Add(CommandPathParameter);
            FileService = fileService ?? throw new ArgumentNullException(nameof(fileService));
        }
예제 #3
0
        public ReplaceFileContentCommand(
            IFileService fileService)
            : base(typeof(ReplaceFileContentCommand).Namespace, nameof(ReplaceFileContentCommand), HelpDefinition)
        {
            CommandPathParameter = new CommandParameterDefinition(
                "path",
                CommandParameterDefinition.TypeValue.String,
                "Indicates the path (file or directory) for replacing",
                "p");

            CommandOldValueParameter = new CommandParameterDefinition(
                "oldvalue",
                CommandParameterDefinition.TypeValue.String,
                "Old value for replace",
                "o");

            CommandOldValuePatternParameter = new CommandParameterDefinition(
                "oldvaluepattern",
                CommandParameterDefinition.TypeValue.String,
                "Old value for replace. Use regex pattern",
                "op");

            CommandNewValueParameter = new CommandParameterDefinition(
                "newvalue",
                CommandParameterDefinition.TypeValue.String,
                "New value for replace",
                "n");

            CommandPatternParameter = new CommandParameterDefinition(
                "pattern",
                CommandParameterDefinition.TypeValue.String,
                "Pattern for files (use more than one with ;). Default value: *.*",
                "a");

            CommandTimesParameter = new CommandParameterDefinition(
                "times",
                CommandParameterDefinition.TypeValue.Integer,
                "How many times the old value will be replaced. By default = -1, which means the old value will be replaced in the whole file",
                "t");


            CommandParametersDefinition.Add(CommandPathParameter);
            CommandParametersDefinition.Add(CommandOldValueParameter);
            CommandParametersDefinition.Add(CommandOldValuePatternParameter);
            CommandParametersDefinition.Add(CommandNewValueParameter);
            CommandParametersDefinition.Add(CommandPatternParameter);
            CommandParametersDefinition.Add(CommandTimesParameter);

            FileService = fileService ?? throw new ArgumentNullException(nameof(fileService));
        }
예제 #4
0
        public OpenRepoCommand(
            IFileService directoryService,
            IPromptCommandService promptCommandService,
            IClipboardService clipboardService)
            : base(typeof(OpenRepoCommand).Namespace, nameof(OpenRepoCommand), HelpDefinition)
        {
            NameParameter = new CommandParameterDefinition(
                "name",
                CommandParameterDefinition.TypeValue.String,
                "Indicates the name or part of it for search and open this folder",
                "n");

            CommandParametersDefinition.Add(NameParameter);
            DirectoryService     = directoryService ?? throw new ArgumentNullException(nameof(directoryService));
            PromptCommandService = promptCommandService ?? throw new ArgumentNullException(nameof(promptCommandService));
            ClipboardService     = clipboardService ?? throw new ArgumentNullException(nameof(clipboardService));
        }
예제 #5
0
        public RenameFolderCommand(
            IFileService fileService)
            : base(typeof(RenameFolderCommand).Namespace, nameof(RenameFolderCommand), HelpDefinition)
        {
            CommandPathOldFolderParameter = new CommandParameterDefinition(
                "oldpath",
                CommandParameterDefinition.TypeValue.String,
                "Source path for rename",
                "o");

            CommandPathNewFolderParameter = new CommandParameterDefinition(
                "newpath",
                CommandParameterDefinition.TypeValue.String,
                "New name of the folder",
                "n");

            CommandParametersDefinition.Add(CommandPathOldFolderParameter);
            CommandParametersDefinition.Add(CommandPathNewFolderParameter);

            FileService = fileService ?? throw new ArgumentNullException(nameof(fileService));
        }
예제 #6
0
        public UnzipCommand(
            IFileService fileService)
            : base(typeof(UnzipCommand).Namespace, nameof(UnzipCommand), HelpDefinition)
        {
            CommandPathParameter = new CommandParameterDefinition(
                "path",
                CommandParameterDefinition.TypeValue.String,
                "Indicates the path (file) for unzip",
                "p");

            CommandDestinationParameter = new CommandParameterDefinition(
                "destination",
                CommandParameterDefinition.TypeValue.String,
                "Indicates the destination folder",
                "d");

            CommandParametersDefinition.Add(CommandPathParameter);
            CommandParametersDefinition.Add(CommandDestinationParameter);

            FileService = fileService ?? throw new ArgumentNullException(nameof(fileService));
        }
예제 #7
0
        public void ExecuteHelp()
        {
            var data = new StringBuilder();

            data.AppendLine($"# Namespace: {CommandNameSpace}");
            data.AppendLine($"# Command Name: {CommandName}");
            data.AppendLine($"# Invocation Name: {GetInvocationCommandName()}");
            data.AppendLine($"# Description: {Description}");
            data.AppendLine(
                CommandParametersDefinition.ToDisplayList(
                    item => {
                StringBuilder line = new StringBuilder();
                line.Append($"--{item.Name}");
                if (item.ShortCut != null)
                {
                    line.Append($" [-{item.ShortCut}]");
                }
                line.Append($", Type value: {item.Type.ToString()}, Description: {item.Description}");
                return(line.ToString());
            }, "Parameters:", ""));
            Log(data.ToString());
        }
예제 #8
0
        public bool IsParamOk(List <CommandParameter> parameters, string name)
        {
            var paremeterDefinition = CommandParametersDefinition
                                      .FirstOrDefault(k => k.Name == name);

            if (paremeterDefinition == null)
            {
                throw new KeyNotFoundException($"Parameter with name '{name}' doesnt exist in the definition of '{GetInvocationCommandName()}'");
            }
            var parameter = parameters.FirstOrDefault(k => k.ParameterName == name);

            if (parameter != null)
            {
                if (paremeterDefinition.Type == CommandParameterDefinition.TypeValue.Boolean)
                {
                    return(true);
                }
                else if (paremeterDefinition.Type == CommandParameterDefinition.TypeValue.Decimal)
                {
                    return(true);
                }
                else if (paremeterDefinition.Type == CommandParameterDefinition.TypeValue.Integer)
                {
                    return(true);
                }
                else if (paremeterDefinition.Type == CommandParameterDefinition.TypeValue.String)
                {
                    return(!string.IsNullOrEmpty(parameter.ValueString));
                }
                else if (paremeterDefinition.Type == CommandParameterDefinition.TypeValue.Guid)
                {
                    return(parameter.ValueGuid != Guid.Empty);
                }
            }
            return(false);
        }
예제 #9
0
        public void ImplementHelpCommand()
        {
            var helpCommand = new CommandParameterDefinition("help", CommandParameterDefinition.TypeValue.Boolean, "Details about the command and it's available parameters");

            CommandParametersDefinition.Add(helpCommand);
        }