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); }
private async Task <bool> ProcessAsync(string body) { OrderPaymentUpdateMessage orderPaymentUpdateMessage = JsonConvert.DeserializeObject <OrderPaymentUpdateMessage>(body); await orderRepository.UpdateOrderPaymentStatus(orderPaymentUpdateMessage.OrderId, orderPaymentUpdateMessage.PaymentSuccess); return(true); }
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."); }
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; } }
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); }