예제 #1
0
        public void HandleMessage(IMessage msg, dynamic handler,string processor)
        {
           if(msg.IsNot<ICommand>() && msg.IsNot<IEvent>()) return;
            _auditor.Handling(msg, HandlerType, processor);
         
            try
            {
                if (msg is ICommand) handler.Execute((dynamic) msg);
                else
                {
                    handler.Handle((dynamic) msg);
                }

            }
            catch (Exception ex)
            {
                _auditor.Handled(msg, HandlerType, processor,ex);
                var mex= new HandledMessageException(handler.GetType(),msg,ex);
                _errors.MessageHandlingFailed(msg,mex);
              
              return;
              
            }

            //just in case the auditor throws
            
            _auditor.Handled(msg, HandlerType, processor);
                    
         
        }
예제 #2
0
        public void HandleMessage(IMessage msg, dynamic handler, string processor)
        {
            if (msg.IsNot <ICommand>() && msg.IsNot <IEvent>())
            {
                return;
            }
            _auditor.Handling(msg, HandlerType, processor);

            try
            {
                if (msg is ICommand)
                {
                    handler.Execute((dynamic)msg);
                }
                else
                {
                    handler.Handle((dynamic)msg);
                }
            }
            catch (Exception ex)
            {
                _auditor.Handled(msg, HandlerType, processor, ex);
                var mex = new HandledMessageException(handler.GetType(), msg, ex);
                _errors.MessageHandlingFailed(msg, mex);

                return;
            }

            //just in case the auditor throws

            _auditor.Handled(msg, HandlerType, processor);
        }
예제 #3
0
 public void MessageHandlingFailed(IMessage msg, HandledMessageException ex)
 {
 }