Пример #1
0
        public void SendToNextStep(RoutingSlip routingSlip)
        {
            var currentStep = routingSlip.Itinerary.First();

            routingSlip.Itinerary.RemoveAt(0);

            var result = new ProcessingStepResult
            {
                Address = currentStep.Address,
            };

            routingSlip.Log.Add(result);

            var nextStep = routingSlip.Itinerary.FirstOrDefault();

            if (nextStep == null)
            {
                return;
            }

            var json = JsonConvert.SerializeObject(routingSlip);

            _bus.CurrentMessageContext.Headers[RoutingSlipHeaderKey] = json;
            _bus.ForwardCurrentMessageTo(nextStep.Address);
        }
Пример #2
0
        private static Task SendToNextStep(IInvokeHandlerContext context, RoutingSlip routingSlip)
        {
            var currentStep = routingSlip.Itinerary.First();

            routingSlip.Itinerary.RemoveAt(0);

            var result = new ProcessingStepResult
            {
                Address = currentStep.Address
            };

            routingSlip.Log.Add(result);

            var nextStep = routingSlip.Itinerary.FirstOrDefault();

            if (nextStep == null)
            {
                return(Task.FromResult(0));
            }

            var json = Serializer.Serialize(routingSlip);

            context.Headers[RoutingSlipHeaderKey] = json;

            return(context.ForwardCurrentMessageTo(nextStep.Address));
        }
        public void SendToNextStep(Exception ex, RoutingSlip routingSlip)
        {
            if (ex != null)
                return;

            var currentStep = routingSlip.Itinerary.First();
            
            routingSlip.Itinerary.RemoveAt(0);

            var result = new ProcessingStepResult
            {
                Address = currentStep.Address,
            };

            routingSlip.Log.Add(result);

            var nextStep = routingSlip.Itinerary.FirstOrDefault();

            if (nextStep == null)
                return;

            var json = JsonConvert.SerializeObject(routingSlip);

            _bus.CurrentMessageContext.Headers[RoutingSlipHeaderKey] = json;
            _bus.ForwardCurrentMessageTo(nextStep.Address);
        }
Пример #4
0
        public void RecordStep()
        {
            var currentStep = Itinerary.First();

            Itinerary.RemoveAt(0);

            var result = new ProcessingStepResult
            {
                Address = currentStep.Address
            };

            Log.Add(result);
        }