예제 #1
0
		public void Execute(IActionVisitor visitor, Action<ITargetProcessCommand> executor, IActivityLogger logger)
		{
			Visit(visitor);

			if (CanBeExecuted)
			{
				Log(logger);

				executor(CreateCommand());
			}
		}
예제 #2
0
        public void Execute(IActionVisitor visitor, Action <ITargetProcessCommand> executor, IActivityLogger logger)
        {
            Visit(visitor);

            if (CanBeExecuted)
            {
                Log(logger);

                executor(CreateCommand());
            }
        }
예제 #3
0
        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));
        }
예제 #4
0
        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);
        }
예제 #5
0
            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);
            }
예제 #6
0
 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());
 }
예제 #9
0
 protected override void Visit(IActionVisitor visitor)
 {
     visitor.Accept(this);
 }
		protected override void Visit(IActionVisitor visitor)
		{
			visitor.Accept(this);
		}
예제 #11
0
 /// <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);
예제 #12
0
		protected abstract void Visit(IActionVisitor visitor);
예제 #13
0
 protected abstract void Visit(IActionVisitor visitor);