コード例 #1
0
        private async Task OnOrderPaymentUpdateReceived(Message message, CancellationToken arg2)
        {
            var body = Encoding.UTF8.GetString(message.Body);//json from service bus
            OrderPaymentUpdateMessage orderPaymentUpdateMessage =
                JsonConvert.DeserializeObject <OrderPaymentUpdateMessage>(body);

            await _orderRepository.UpdateOrderPaymentStatus(orderPaymentUpdateMessage.OrderId, orderPaymentUpdateMessage.PaymentSuccess);
        }
コード例 #2
0
        private async Task <bool> ProcessAsync(string body)
        {
            OrderPaymentUpdateMessage orderPaymentUpdateMessage =
                JsonConvert.DeserializeObject <OrderPaymentUpdateMessage>(body);

            await orderRepository.UpdateOrderPaymentStatus(orderPaymentUpdateMessage.OrderId, orderPaymentUpdateMessage.PaymentSuccess);

            return(true);
        }
コード例 #3
0
        protected async Task ProcessMessageAsync(Message message, CancellationToken token)
        {
            using var scope = logger.BeginScope("Processing message for trace {TraceId}", message.CorrelationId);

            var messageBody = Encoding.UTF8.GetString(message.Body);
            OrderPaymentRequestMessage orderPaymentRequestMessage = JsonConvert.DeserializeObject <OrderPaymentRequestMessage>(messageBody);

            PaymentInfo paymentInfo = new PaymentInfo
            {
                CardNumber     = orderPaymentRequestMessage.CardNumber,
                CardName       = orderPaymentRequestMessage.CardName,
                CardExpiration = orderPaymentRequestMessage.CardExpiration,
                Total          = orderPaymentRequestMessage.Total
            };

            var result = await externalGatewayPaymentService.PerformPayment(paymentInfo);

            await subscriptionClient.CompleteAsync(message.SystemProperties.LockToken);

            //send payment result to order service via service bus
            OrderPaymentUpdateMessage orderPaymentUpdateMessage = new OrderPaymentUpdateMessage
            {
                PaymentSuccess = result,
                OrderId        = orderPaymentRequestMessage.OrderId
            };

            try
            {
                await messageBus.PublishMessage(orderPaymentUpdateMessage, orderPaymentUpdatedMessageTopic, message.CorrelationId);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            logger.LogDebug($"{orderPaymentRequestMessage.OrderId}: ServiceBusListener received item.");
            await Task.Delay(20000);

            logger.LogDebug($"{orderPaymentRequestMessage.OrderId}:  ServiceBusListener processed item.");
        }
コード例 #4
0
        private async Task ProcessMessageAsync(ProcessMessageEventArgs args)
        {
            var messageBody = Encoding.UTF8.GetString(args.Message.Body);
            var orderPaymentRequestMessage = JsonConvert.DeserializeObject <OrderPaymentRequestMessage>(messageBody);

            var orderPaymentUpdateMessage = new OrderPaymentUpdateMessage
            {
                PaymentSuccess = true,
                OrderId        = orderPaymentRequestMessage.OrderId
            };

            try
            {
                await _messageBus.PublishMessage(orderPaymentUpdateMessage, _orderPaymentUpdatedMessageTopic);

                await args.CompleteMessageAsync(args.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
コード例 #5
0
        public override async Task <bool> ProcessAsync(string messageBody)
        {
            OrderPaymentRequestMessage orderPaymentRequestMessage = JsonConvert.DeserializeObject <OrderPaymentRequestMessage>(messageBody);

            PaymentInfo paymentInfo = new PaymentInfo
            {
                CardNumber     = orderPaymentRequestMessage.CardNumber,
                CardName       = orderPaymentRequestMessage.CardName,
                CardExpiration = orderPaymentRequestMessage.CardExpiration,
                Total          = orderPaymentRequestMessage.Total
            };

            var result = await externalGatewayPaymentService.PerformPayment(paymentInfo);

            //send payment result to order service via service bus
            OrderPaymentUpdateMessage orderPaymentUpdateMessage = new OrderPaymentUpdateMessage
            {
                PaymentSuccess = result,
                OrderId        = orderPaymentRequestMessage.OrderId
            };

            try
            {
                await messageBus.PublishMessage(orderPaymentUpdateMessage, _publishToQueueName);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            _logger.LogDebug($"{orderPaymentRequestMessage.OrderId}: ServiceBusListener received item.");
            _logger.LogDebug($"{orderPaymentRequestMessage.OrderId}:  ServiceBusListener processed item.");

            return(result);
        }