| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using qdr.app.tss.client.console;
- using Quadarax.Foundation.Core.QConsole;
- using Quadarax.Foundation.Core.QConsole.Argument;
- using Quadarax.Foundation.Core.QConsole.Command.Base;
- using System.IO.Abstractions;
- namespace qdr.app.qbstack.Commands
- {
- abstract class BaseCmd : AbstractCommand
- {
- #region *** Constants ***
- private const string ARG_URL_NAME = "url";
- private const string ARG_URL_HINT = "url";
- private const string ARG_URL_DESCR = "The WordPress site URL where TSS plugin installed (e.g. https://example.com).";
- private const string ARG_APIKEY_NAME = "apiKey";
- private const string ARG_APIKEY_HINT = "api_key";
- private const string ARG_APIKEY_DESCR = "API key for authentication (can be obtain from TSS plugin setting).";
- #endregion
- #region *** Private fields ***
-
- #endregion
- #region *** Properties ***
- protected IFileSystem FileSystem => GetContext<CommandContext>().FileSystem;
- protected Uri Url {get; private set;} = new Uri("https://example.com/");
- protected string ApiKey {get; private set;} = string.Empty;
- #endregion
- #region *** Constructors ***
- protected BaseCmd(Engine engine) : base(engine)
- {
- }
- #endregion
- #region *** Operations ***
-
- #endregion
- #region *** Overrides ***
- protected override IEnumerable<AbstractArgument> OnSetupArguments()
- {
- var list = base.OnSetupArguments().ToList();
- list.Add(new NamedArgument(ARG_URL_NAME, ARG_URL_DESCR, ARG_URL_HINT, Quadarax.Foundation.Core.QConsole.Value.TypeValuesEnum.String, string.Empty, true));
- list.Add(new NamedArgument(ARG_APIKEY_NAME, ARG_APIKEY_DESCR, ARG_APIKEY_HINT, Quadarax.Foundation.Core.QConsole.Value.TypeValuesEnum.String, string.Empty,true));
- return list;
- }
-
- protected override void OnValidateArguments()
- {
- base.OnValidateArguments();
- var url = GetArgumentValueOrDefault<string>(ARG_URL_NAME);
- if (!Uri.TryCreate(url, UriKind.Absolute, out var uri))
- throw new ArgumentException($"URL '{url}' not valid.", ARG_URL_NAME);
- Url = uri;
- ApiKey = GetArgumentValueOrDefault<string>(ARG_APIKEY_NAME)!;
-
- }
- #endregion
- }
- }
|