Exemplo n.º 1
0
        private bool ResolveLegCommand(ArgumentList arguments, ref ILegCommand legCommand, ref Result result)
        {
            var strCommand = arguments[1];

            if (strCommand == _legConnect.Name)
            {
                legCommand = _legConnect;
                return(true);
            }

            if (strCommand == _legDisconnect.Name)
            {
                legCommand = _legDisconnect;
                return(true);
            }

            if (strCommand == _legCollectDigits.Name)
            {
                legCommand = _legCollectDigits;
                return(true);
            }

            legCommand = null;
            result     = $"{arguments[1].String} is not a valid leg command type.";
            return(false);
        }
Exemplo n.º 2
0
        protected override ReturnCode ExecuteInternal(Interpreter interpreter, IClientData clientData, ArgumentList arguments, ref Result result)
        {
            if (arguments == null || (arguments.Count < 3))
            {
                result = Utility.WrongNumberOfArguments(this, 1, arguments, "leg_command command_param");

                return(ReturnCode.Error);
            }

            ILegCommand legCommand = null;

            if (!ResolveLegCommand(arguments, ref legCommand, ref result))
            {
                ErrorLogger.Error(result.String);
                return(ReturnCode.Error);
            }

            if (!legCommand.ValidateArguments(arguments, ref result))
            {
                ErrorLogger.Error(result);
                return(ReturnCode.Error);
            }

            return(legCommand.Execute(interpreter, clientData, arguments, ref result));
        }