//TODO: Unit test all upstream messages
        /// <summary>
        /// Send a message to the next handler
        /// </summary>
        /// <param name="context">My context</param>
        /// <param name="message">Message received</param>
        public void HandleUpstream(IUpstreamContext context, IUpstreamMessage message)
        {
            // great. let's remove it
            var msg = message as CommandCompleted;

            if (msg != null)
            {
                _storage.Delete(msg.Message.Command);
            }

            // won't try anymore.
            var aborted = message as CommandAborted;

            if (aborted != null)
            {
                _storage.Delete(aborted.Message.Command);
            }

            var failed = message as CommandFailed;

            if (failed != null)
            {
                _storage.Update(failed.Message);
            }

            context.SendUpstream(message);
        }
示例#2
0
 /// <summary>
 /// Send a message to the next handler
 /// </summary>
 /// <param name="context">My context</param>
 /// <param name="message">Message received</param>
 public void HandleUpstream(IUpstreamContext context, IUpstreamMessage message)
 {
     if (message is CommandFailed)
         Console.WriteLine("Failed to deliver, attempt {0}",
                           ((CommandFailed) message).NumberOfAttempts);
     else
         Console.WriteLine("In error handler: {0}", message);
 }
示例#3
0
 /// <summary>
 /// Send a message to the next handler
 /// </summary>
 /// <param name="context">My context</param>
 /// <param name="message">Message received</param>
 public void HandleUpstream(IUpstreamContext context, IUpstreamMessage message)
 {
     if (message is CommandFailed)
     {
         Console.WriteLine("Failed to deliver, attempt {0}",
                           ((CommandFailed)message).NumberOfAttempts);
     }
     else
     {
         Console.WriteLine("In error handler: {0}", message);
     }
 }
        /// <summary>
        /// Send a message to the next handler
        /// </summary>
        /// <param name="context">My context</param>
        /// <param name="message">Message received</param>
        public void HandleUpstream(IUpstreamContext context, IUpstreamMessage message)
        {
            var msg = message as CommandFailed;
            if (msg != null)
            {
                if (msg.Message.Attempts >= _numberOfAttempts)
                {
                    context.SendUpstream(new CommandAborted(msg.Message, msg.Exception));
                    return;
                }

                context.SendDownstream(msg.Message);
            }

            context.SendUpstream(message);
        }
        /// <summary>
        /// Send a message to the next handler
        /// </summary>
        /// <param name="context">My context</param>
        /// <param name="message">Message received</param>
        public void HandleUpstream(IUpstreamContext context, IUpstreamMessage message)
        {
            var msg = message as CommandFailed;

            if (msg != null)
            {
                if (msg.Message.Attempts >= _numberOfAttempts)
                {
                    context.SendUpstream(new CommandAborted(msg.Message, msg.Exception));
                    return;
                }

                context.SendDownstream(msg.Message);
            }

            context.SendUpstream(message);
        }
        //TODO: Unit test all upstream messages
        /// <summary>
        /// Send a message to the next handler
        /// </summary>
        /// <param name="context">My context</param>
        /// <param name="message">Message received</param>
        public void HandleUpstream(IUpstreamContext context, IUpstreamMessage message)
        {
            // great. let's remove it
            var msg = message as CommandCompleted;
            if (msg != null)
            {
                _storage.Delete(msg.Message.Command);
            }

            // won't try anymore.
            var aborted = message as CommandAborted;
            if (aborted != null)
            {
                _storage.Delete(aborted.Message.Command);
            }

            var failed = message as CommandFailed;
            if (failed != null)
            {
                _storage.Update(failed.Message);
            }

            context.SendUpstream(message);
        }
示例#7
0
 /// <summary>
 /// Send a message to the next handler
 /// </summary>
 /// <param name="context">My context</param>
 /// <param name="message">Message received</param>
 void IUpstreamHandler.HandleUpstream(IUpstreamContext context, IUpstreamMessage message)
 {
     throw new InvalidOperationException(_upstream[_upstream.Count - 2] +
                                         " invoked SendUpstream when its the last handler. Don't do that..");
 }
 /// <summary>
 /// Send a message to the next handler
 /// </summary>
 /// <param name="context">My context</param>
 /// <param name="message">Message received</param>
 public void HandleUpstream(IUpstreamContext context, IUpstreamMessage message)
 {
     Invoked = true;
     context.SendUpstream(message);
 }
 /// <summary>
 /// Send a message to the next handler
 /// </summary>
 /// <param name="context">My context</param>
 /// <param name="message">Message received</param>
 public void HandleUpstream(IUpstreamContext context, IUpstreamMessage message)
 {
     Invoked = true;
     context.SendUpstream(message);
 }
示例#10
0
 /// <summary>
 /// Send a message to the next handler
 /// </summary>
 /// <param name="context">My context</param>
 /// <param name="message">Message received</param>
 void IUpstreamHandler.HandleUpstream(IUpstreamContext context, IUpstreamMessage message)
 {
     throw new InvalidOperationException(_upstream[_upstream.Count - 2] +
                                         " invoked SendUpstream when its the last handler. Don't do that..");
 }
示例#11
0
 /// <summary>
 /// Send a message to the next handler
 /// </summary>
 /// <param name="context">My context</param>
 /// <param name="message">Message received</param>
 public void HandleUpstream(IUpstreamContext context, IUpstreamMessage message)
 {
     Console.WriteLine("In error handler: {0}", message);
 }
示例#12
0
 /// <summary>
 /// Send a message to the next handler
 /// </summary>
 /// <param name="context">My context</param>
 /// <param name="message">Message received</param>
 public void HandleUpstream(IUpstreamContext context, IUpstreamMessage message)
 {
     Console.WriteLine("In error handler: {0}", message);
 }
示例#13
0
 /// <summary>
 /// Send a message to the next handler
 /// </summary>
 /// <param name="context">My context</param><param name="message">Message received</param>
 public void HandleUpstream(IUpstreamContext context, IUpstreamMessage message)
 {
     var aborted = message as CommandAborted;
     if (aborted != null)
         MessageBox.Show(aborted.Exception.ToString());
 }