CK.Keyboard.Versionning.V150To160.ProcessKeyCommand150To160 C# (CSharp) Method

ProcessKeyCommand150To160() private static method

private static ProcessKeyCommand150To160 ( string keyCommand, string &command, string &parameter ) : bool
keyCommand string
command string
parameter string
return bool
        private static bool ProcessKeyCommand150To160( string keyCommand, out string command, out string parameter )
        {
            command = String.Empty;
            parameter = String.Empty;

            if( keyCommand.StartsWith( "Mode." ) )
            {
                command = "mode";

                if( keyCommand.StartsWith( "Mode.Toggle" ) )
                {
                    parameter = "toggle,";
                }
                else if( keyCommand.StartsWith( "Mode.Remove" ) )
                {
                    parameter = "remove,";
                }
                else if( keyCommand.StartsWith( "Mode.Add" ) )
                {
                    parameter = "add,";
                }
                else if( keyCommand.StartsWith( "Mode.Set" ) )
                {
                    parameter = "set,";
                }
                else
                {
                    return false;
                }

                parameter += keyCommand.Substring( keyCommand.IndexOf( '"' ) + 1, ( keyCommand.Length - keyCommand.IndexOf( '"' ) ) - ( keyCommand.Length - keyCommand.LastIndexOf( '"' ) + 1 ) );
            }
            else if( keyCommand.StartsWith( "sendKeyOld" ) )
            {
                command = "sendkeyold";
                parameter = keyCommand.Substring( keyCommand.IndexOf( '"' ) + 1, ( keyCommand.Length - keyCommand.IndexOf( '"' ) ) - ( keyCommand.Length - keyCommand.LastIndexOf( '"' ) + 1 ) );
            }
            else if( keyCommand.StartsWith( "MonitorOnce" ) )
            {
                command = "monitoronce";
                parameter = "sendkey"; //Before 1.5.0, only sendkey was used
                string eventName = keyCommand.Split( '"' )[1];

                string innerCommand = String.Empty;
                string innerParameter = String.Empty;
                ProcessKeyCommand150To160( keyCommand.Substring( keyCommand.IndexOf( ":" ) + 1 ), out innerCommand, out innerParameter );

                parameter = String.Format( "{0},{1},{2}:{3}", parameter, eventName, innerCommand, innerParameter );
            }
            else if( keyCommand.StartsWith( "DynCommand" ) )
            {
                command = "dyncommand";
                parameter = keyCommand.Substring( keyCommand.IndexOf( '"' ) + 1, ( keyCommand.Length - keyCommand.IndexOf( '"' ) ) - ( keyCommand.Length - keyCommand.LastIndexOf( '"' ) + 1 ) );
                parameter = parameter.ToLowerInvariant();
            }
            else
            {
                return false;
            }

            return true;
        }