示例#1
0
        public async Task Handle(NoeOfferResponse message, IMessageHandlerContext context)
        {
            if (message.NoeOfferAccepted)
            {
                log.InfoFormat("Recieved NoeOfferResponse, NoeOfferAccepted flag TRUE for {0} ({1}), sending NoeResponse",
                               message.NoeId, message.SagaId);
                Data.NoeOfferAccepted = message.NoeOfferAccepted;
            }
            else
            {
                log.InfoFormat("Recieved NoeOfferResponse, NoeOfferAccepted flag FALSE for {0} ({1}), sending NoeResponse",
                               message.NoeId, message.SagaId);
                Data.NoeOfferAccepted = message.NoeOfferAccepted;
            }
            //
            // No matter what this workflow is ending
            //
            var request = new NoeResponse(message);

            request.Status = Constants.ZSUS_SAGA_MARKED_COMPLETE;
            var options = new SendOptions();

            options.SetDestination(Constants.ZSUS_NOE_RESPONSE_ENDPOINT);
            await context.Send(request, options).ConfigureAwait(false);
        }
示例#2
0
        public async Task NoeOfferedAsync(int noeId, Guid sagaId, int flag)
        {
            log.InfoFormat("NoeOffered - noeId {0}, flag {1}", noeId, flag);

            var message = new NoeOfferResponse()
            {
                NoeId            = noeId,
                SagaId           = sagaId,
                NoeOfferAccepted = (flag == 0 ? false : true)
            };

            //StartupAsync();
            var options = new SendOptions();

            options.SetDestination(Constants.ZSUS_NOE_SAGA_ENDPOINT);
            await endpointInstance.Send(message, options).ConfigureAwait(false);

            //ShutdownAsync();
        }