protected DataExecutingEventArgs OnExecuting(Type resultType, IDictionary <string, object> inParameters, out IDictionary <string, object> outParameters)
        {
            var args = new DataExecutingEventArgs(this.Name, resultType, inParameters);

            this.OnExecuting(args);
            outParameters = args.OutParameters;
            return(args);
        }
        protected virtual void OnExecuting(DataExecutingEventArgs args)
        {
            var e = this.Executing;

            if (e != null)
            {
                e(this, args);
            }
        }
        protected virtual bool OnExecuting(DataExecutionContext context)
        {
            var e = this.Executing;

            if (e == null)
            {
                return(false);
            }

            var args = new DataExecutingEventArgs(context);

            e(this, args);
            return(args.Cancel);
        }