using Quadarax.Foundation.Core.QConsole; using Quadarax.Foundation.Core.QConsole.Argument; using Quadarax.Foundation.Core.QConsole.Attributes; using Quadarax.Foundation.Core.QConsole.Value; using Quadarax.Foundation.Core.Value; namespace Quadarax.Foundation.Core.QMonitor.Console.Commands { [CommandDefinition] internal class MonitorCommand : BaseCommand { #region *** Constants *** private const string CS_CMD_MONITOR_NAME = "monitor"; private const string CS_CMD_MONITOR_DESC = "Monitor specific single channel"; protected const string CS_ARG_NAME_IID = "iid"; private const string CS_ARG_HINT_IID = ""; private const string CS_ARG_DESC_IID = "Specify instance identifier to listen from."; protected const string CS_ARG_NAME_CHANNEL = "channel"; private const string CS_ARG_HINT_CHANNEL = ""; private const string CS_ARG_DESC_CHANNEL = "Specify full channel name to monitor."; #endregion #region *** Properties *** public override string Name => CS_CMD_MONITOR_NAME; public override string Description => CS_CMD_MONITOR_DESC; #endregion #region *** Constructor *** public MonitorCommand(Engine engine) : base(engine) { } #endregion #region *** Execute *** protected override Result OnExecute() { WriteInfo($"Waiting for channel definition ''"); } #endregion #region *** Private Operations *** protected override IEnumerable OnSetupArguments() { var list = base.OnSetupArguments().ToList(); list.Add(new NamedArgument(CS_ARG_NAME_IID, CS_ARG_HINT_IID, CS_ARG_DESC_IID, TypeValuesEnum.String,string.Empty,true)); list.Add(new NamedArgument(CS_ARG_NAME_CHANNEL, CS_ARG_HINT_CHANNEL, CS_ARG_DESC_CHANNEL, TypeValuesEnum.String,string.Empty,true)); return list; } #endregion } }