Ejemplo n.º 1
0
        public void Handle(string input, IListener listener)
        {
            if (input == null)
            {
                return;
            }
            input = input.ToLower();

            if (_next != null)
            {
                var clone = (DynamicCommand)_next.Clone();
                _next = null;
                if (clone.Execute(input, listener))
                {
                    return;
                }
            }
            _next = null;
            foreach (var c in _permanent.ToArray())
            {
                if (c.Execute(input, listener))
                {
                    break;
                }
            }

            foreach (var c in _once.ToArray())
            {
                if (c.Execute(input, listener))
                {
                    _once.Remove(c);
                }
            }
        }