/// <summary>
        ///     Initializes a new instance of the <see cref="TableCommand"/>
        ///     class.
        /// </summary>
        /// <param name="menuName">
        ///     The name of the command to be shown to the user.
        /// </param>
        /// <param name="callback">
        ///     The function to execute when the command is invoked.
        /// </param>
        /// <exception cref="System.ArgumentException">
        ///     <paramref name="menuName"/> is whitespace.
        /// </exception>
        /// <exception cref="System.ArgumentNullException">
        ///     <paramref name="menuName"/> is <c>null</c>.
        ///     - or -
        ///     <paramref name="callback"/> is <c>null</c>.
        /// </exception>
        public TableCommand(string menuName, TableCommandCallback callback)
        {
            Guard.NotNullOrWhiteSpace(menuName, nameof(menuName));
            Guard.NotNull(callback, nameof(callback));

            this.MenuName = menuName;
            this.Callback = callback;
        }
Example #2
0
        /// <inheritdoc />
        public ITableBuilder AddTableCommand(string name, TableCommandCallback callback)
        {
            Guard.NotNullOrWhiteSpace(name, nameof(name));

            var canonicalName = name.Trim();

            if (this.commands.Any(x => StringComparer.CurrentCultureIgnoreCase.Equals(x.MenuName, canonicalName)))
            {
                throw new InvalidOperationException($"Duplicate command names are not allowed. Duplicate: {canonicalName}");
            }

            this.commands.Add(new TableCommand(canonicalName, callback));

            return(this);
        }
 public ITableBuilder AddTableCommand(string commandName, TableCommandCallback callback)
 {
     throw new NotImplementedException();
 }
Example #4
0
 public ITableBuilder AddTableCommand(string commandName, TableCommandCallback callback)
 {
     tables.Add(new Tuple <string, TableCommandCallback>(commandName, callback));
     return(this);
 }