예제 #1
0
        private bool CommandExists(string[] commandRawData, out CommandValidationStatus validationStatus)
        {
            CommandName commandName;
              Enum.TryParse(commandRawData[0], true, out commandName);

              validationStatus =
            commandName != CommandName.Unknown
              ? CommandValidationStatus.Ok
              : CommandValidationStatus.CommandNotFound;

              return
            validationStatus == CommandValidationStatus.Ok;
        }
예제 #2
0
 public ConsoleCommand(ConsoleCommandConfig config, CommandValidationStatus validationStatus, params string[] arguments)
     : base(config.Name, config.Call, config.ArgumentValidators)
 {
     Arguments = arguments ?? new string[] { };
       ValidationStatus = validationStatus;
 }
예제 #3
0
        private bool ValidArgumentTypes(string[] commandRawData, out CommandValidationStatus validationStatus)
        {
            ConsoleCommandConfig commandConfig = GetCommandConfig(commandRawData);

              validationStatus = CommandValidationStatus.Ok;
              for (int i = 0; i < commandConfig.ArgumentValidators.Length; i++)
              {
            var re = new Regex(commandConfig.ArgumentValidators[i], RegexOptions.IgnoreCase);
            if (re.IsMatch(commandRawData[i+1]))
              continue;
            validationStatus = CommandValidationStatus.ArgumentHasInvalidValue;
            break;
              }

              return
            validationStatus == CommandValidationStatus.Ok;
        }
예제 #4
0
        private bool ValidNumberOfArguments(string[] commandRawData, out CommandValidationStatus validationStatus)
        {
            ConsoleCommandConfig commandConfig = GetCommandConfig(commandRawData);

              validationStatus =
            commandConfig.ArgumentValidators.Length == commandRawData.Length - 1
              ? CommandValidationStatus.Ok
              : CommandValidationStatus.InvalidNumberOfArguments;

              return
            validationStatus == CommandValidationStatus.Ok;
        }
예제 #5
0
        private bool HasData(string[] commandRawData, out CommandValidationStatus validationStatus)
        {
            validationStatus =
            commandRawData != null &&
            commandRawData.Any()
              ? CommandValidationStatus.Ok
              : CommandValidationStatus.Unvalidated;

              return
            validationStatus == CommandValidationStatus.Ok;
        }