public async Task Handle(BasketCheckoutEvent @event) { var orderId = Guid.NewGuid(); var order = new Order { UserId = @event.UserId, Id = orderId, OrderPaid = false, OrderPlaced = DateTime.Now, OrderTotal = @event.BasketTotal }; await _mediator.Send(new AddOrderCommand(order)); // Отправляем запрос на оплату заказа. var orderPaymentRequestEvent = new OrderPaymentRequestEvent { CardExpiration = @event.CardExpiration, CardName = @event.CardName, CardNumber = @event.CardNumber, OrderId = orderId, Total = @event.BasketTotal }; try { _eventBus.Publish(orderPaymentRequestEvent); } catch (Exception e) { Console.WriteLine(e); throw; } }
private async Task Handle(OrderPaymentRequestEvent orderPaymentRequest) { var paymentInfo = new PaymentInfo { CardNumber = orderPaymentRequest.CardNumber, CardName = orderPaymentRequest.CardName, CardExpiration = orderPaymentRequest.CardExpiration, Total = orderPaymentRequest.Total }; var paymentProcessStatus = await _mediator.Send(new OrderPaymentRequestCommand(paymentInfo)); var orderPaymentUpdateMessage = new OrderPaymentUpdatedEvent( orderPaymentRequest.OrderId, paymentProcessStatus); try { // Отправляем результат платежа в шину. _eventBus.Publish(orderPaymentUpdateMessage); } catch (Exception e) { Console.WriteLine(e); throw; } _logger.LogDebug($"{orderPaymentRequest.OrderId}: ServiceBusListener received item."); await Task.Delay(20000); _logger.LogDebug($"{orderPaymentRequest.OrderId}: ServiceBusListener processed item."); }