示例#1
0
 /// <summary>
 /// 如果当前命令执行上下文中的命令名称在 <paramref name="commandNames"/> 中存在则执行 <paramref name="func"/>。
 /// </summary>
 /// <typeparam name="T">返回值类型。</typeparam>
 /// <param name="context">命令上下文。</param>
 /// <param name="func">执行的动作。</param>
 /// <param name="def">如果不属于 <paramref name="commandNames"/> 返回的默认值。</param>
 /// <param name="commandNames">命令名称。</param>
 /// <returns>返回值。</returns>
 public static T Is <T>(this CommandExecuteContext context, Func <T> func, T def, params string[] commandNames)
 {
     if (func == null || !context.IsIn(commandNames))
     {
         return(def);
     }
     return(func());
 }
示例#2
0
 /// <summary>
 /// 如果当前命令执行上下文中的命令名称在 <paramref name="commandNames"/> 中存在则执行 <paramref name="action"/>。
 /// </summary>
 /// <param name="context">命令上下文。</param>
 /// <param name="action">执行的动作。</param>
 /// <param name="commandNames">命令名称。</param>
 public static void Is(this CommandExecuteContext context, Action action, params string[] commandNames)
 {
     if (action == null || !context.IsIn(commandNames))
     {
         return;
     }
     action();
 }
示例#3
0
 /// <summary>
 /// 执行命令。
 /// </summary>
 /// <param name="context">命令执行上下文。</param>
 public abstract void Execute(CommandExecuteContext context);
示例#4
0
 /// <summary>
 /// 执行命令出错时执行。
 /// </summary>
 /// <param name="context">命令上下文。</param>
 /// <param name="exception">异常信息。</param>
 /// <returns>是否抛出异常,如果需要抛出异常则返回true,否则返回false。</returns>
 protected internal virtual bool Fail(CommandExecuteContext context, Exception exception)
 {
     context.WriteLine("执行语句 {0} 时发生了错误,详细信息:{1}", string.Join(" ", context.Args), exception);
     return(false);
 }
示例#5
0
 /// <summary>
 /// 命令执行完成之后执行。
 /// </summary>
 /// <param name="context">命令上下文。</param>
 public virtual void Executed(CommandExecuteContext context)
 {
 }
示例#6
0
 /// <summary>
 /// 准备执行命令之前时执行。
 /// </summary>
 /// <param name="context">命令执行上下文。</param>
 protected internal virtual void Executing(CommandExecuteContext context)
 {
 }
示例#7
0
 private static bool IsIn(this CommandExecuteContext context, IEnumerable <string> commandNames)
 {
     return(commandNames.Any(i => string.Equals(i, context.CommandName, StringComparison.OrdinalIgnoreCase)));
 }