Example #1
0
        // Public Methods (1) 

        /// <summary>
        ///
        /// </summary>
        /// <see cref="ILogCommand.Execute(ILogMessage)"/>
        public new ILogCommandExecutionResult Execute(ILogMessage orgMsg)
        {
            if (!this.CanExecute(orgMsg))
            {
                return(null);
            }

            var result = new LogCommandExecutionResult();

            result.Command = this;
            result.Message = orgMsg;

            try
            {
                var ctx = this.CreateBasicExecutionContext(orgMsg);

                this.OnExecute(ctx);

                result.Errors            = new Exception[0];
                result.DoLogMessage      = ctx.DoLogMessage;
                result.MessageValueToLog = ctx.MessageValueToLog;
            }
            catch (Exception ex)
            {
                var aggEx = ex as AggregateException;
                if (aggEx != null)
                {
                    result.Errors = aggEx.InnerExceptions;
                }
                else
                {
                    result.Errors = new Exception[] { ex };
                }

                result.DoLogMessage      = false;
                result.MessageValueToLog = null;
            }

            return(result);
        }
        // Public Methods (1) 

        /// <summary>
        ///
        /// </summary>
        /// <see cref="ILogCommand.Execute(ILogMessage)"/>
        public new ILogCommandExecutionResult Execute(ILogMessage orgMsg)
        {
            if (!this.CanExecute(orgMsg))
            {
                return(null);
            }

            LogCommandExecutionResult result = new LogCommandExecutionResult();

            result.Command = this;
            result.Message = orgMsg;

            try
            {
                LogCommandExecutionContext ctx = this.CreateBasicExecutionContext(orgMsg);

                this.OnExecute(ctx);

                result.Errors            = new Exception[0];
                result.DoLogMessage      = ctx.DoLogMessage;
                result.MessageValueToLog = ctx.MessageValueToLog;
            }
            catch (Exception ex)
            {
                AggregateException aggEx = ex as AggregateException;
                if (aggEx == null)
                {
                    aggEx = new AggregateException(new Exception[] { ex });
                }

                result.Errors = CollectionHelper.AsArray(aggEx.Flatten().InnerExceptions);

                result.DoLogMessage      = false;
                result.MessageValueToLog = null;
            }

            return(result);
        }