DummyCmd.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using Quadarax.Foundation.Core.QConsole;
  2. using Quadarax.Foundation.Core.QConsole.Argument;
  3. using Quadarax.Foundation.Core.QConsole.Attributes;
  4. using Quadarax.Foundation.Core.QConsole.Command.Base;
  5. using Quadarax.Foundation.Core.Value;
  6. namespace qdr.fnd.core.qconsole.test.Commands
  7. {
  8. [CommandDefinition]
  9. internal class DummyCmd : AbstractCommand
  10. {
  11. public const string CommandName = "dummy";
  12. public const string ArgResultName = "result";
  13. protected bool ResultSuccess {get;set;}
  14. public DummyCmd(Engine engine) : base(engine)
  15. {
  16. }
  17. public override string Name => CommandName;
  18. public override string Description => CommandName;
  19. protected override Result OnExecute()
  20. {
  21. if(!ResultSuccess)
  22. {
  23. Console.WriteLine("Dummy command execution failed.");
  24. return new Result(new Exception("Dummy command execution failed by user request."));
  25. }
  26. Console.WriteLine("Dummy command executed successfully.");
  27. return new Result();
  28. }
  29. protected override void OnValidateArguments()
  30. {
  31. ResultSuccess = GetArgumentValueOrDefault<bool>(ArgResultName);
  32. }
  33. protected override IEnumerable<AbstractArgument> OnSetupArguments()
  34. {
  35. var args = base.OnSetupArguments().ToList();
  36. args.Add(new NamedArgument(ArgResultName,ArgResultName,ArgResultName, Quadarax.Foundation.Core.QConsole.Value.TypeValuesEnum.Bool, "True", false));
  37. return args;
  38. }
  39. }
  40. }