public void Execute(IActionVisitor visitor, Action<ITargetProcessCommand> executor, IActivityLogger logger) { Visit(visitor); if (CanBeExecuted) { Log(logger); executor(CreateCommand()); } }
public void Execute(IActionVisitor visitor, Action <ITargetProcessCommand> executor, IActivityLogger logger) { Visit(visitor); if (CanBeExecuted) { Log(logger); executor(CreateCommand()); } }
public void ActionVisitor_Visit_Success() { var mock = new Mock <VisitorTests>(); IActionVisitor <Letter> visitor = Visitor.For <Letter>(); visitor.Register <A>(mock.Object.VisitAction); var value = new A(); visitor.Visit(value); mock.Verify(x => x.VisitAction(value)); }
private static void ActionVisitor() { Console.WriteLine("Action Visitor"); IActionVisitor <Letter> visitor = Visitor.For <Letter>(); visitor.Register <A>(x => Console.WriteLine(x.GetType().Name)); visitor.Register <B>(x => Console.WriteLine(x.GetType().Name)); Letter a = new A(); Letter b = new B(); visitor.Visit(a); visitor.Visit(b); }
public void Do() { Console.WriteLine("Action Visitor"); IActionVisitor <Letter> visitor = Visitor.For <Letter>(); visitor.Register <A>(ProcessA); visitor.Register <B>(ProcessB); Letter a = new A(); Letter b = new B(); visitor.Visit(a); visitor.Visit(b); }
public override TResult AcceptVisitor <TArg, TResult>(IActionVisitor <TArg, TResult> visitor, TArg arg) { return(visitor.Visit(this, arg)); }
public void Execute(IActionVisitor visitor, Action<ITargetProcessCommand> executor, IActivityLogger logger) { visitor.Accept(this); executor(CreateCommand()); }
public void Execute(IActionVisitor visitor, Action <ITargetProcessCommand> executor, IActivityLogger logger) { visitor.Accept(this); executor(CreateCommand()); }
protected override void Visit(IActionVisitor visitor) { visitor.Accept(this); }
/// <summary> /// Accept visitor. /// </summary> /// <typeparam name="TArg">Type of argument to be passed to visitor.</typeparam> /// <typeparam name="TResult">Type of result.</typeparam> /// <param name="visitor">Visitor.</param> /// <param name="arg">Argument to be passed to visitor.</param> /// <returns></returns> public abstract TResult AcceptVisitor <TArg, TResult>(IActionVisitor <TArg, TResult> visitor, TArg arg);
protected abstract void Visit(IActionVisitor visitor);