Ejemplo n.º 1
0
        /// <inheritdoc />
        public void Execute(IEnumerable <TExtension> extensions, IExecutableContext executableContext)
        {
            Ensure.ArgumentNotNull(executableContext, "executableContext");

            foreach (IBehavior <TExtension> behavior in this.behaviors)
            {
                executableContext.CreateBehaviorContext(behavior);

                behavior.Behave(extensions);
            }

            this.action();
        }
        /// <inheritdoc />
        public void Execute(IEnumerable <TExtension> extensions, IExecutableContext executableContext)
        {
            Ensure.ArgumentNotNull(extensions, "extensions");
            Ensure.ArgumentNotNull(executableContext, "executableContext");

            TContext context = this.initializer();

            this.contextInterceptor(this, context);

            foreach (IBehavior <TExtension> behavior in this.behaviors)
            {
                executableContext.CreateBehaviorContext(behavior);

                behavior.Behave(extensions);
            }

            foreach (TExtension extension in extensions)
            {
                this.action(extension, context);
            }
        }