private void OnMessage(object sender, Order order) { _logger.LogInformation($"got a new order: {order.Id}"); using (var scope = _serviceProvider.CreateScope()) { var orderRepository = scope.ServiceProvider.GetRequiredService <IRepository <Order> >(); order.UpdateOrderStatus(OrderStatus.New); orderRepository.Insert(order); _paymentMessagePublisher.PushMessage(new Payment(order)); } }
public FoodAppMutation(IMessagePublisher <Order> messagePublisher) { Field <AddedToQueuePayloadType>( "placeOrder", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <OrderInputType> > { Name = "order" } ), resolve: context => { var orderInput = context.GetArgument <OrderDto>("order"); var order = Order.Create(orderInput.Id); messagePublisher.PushMessage(order); return(new AddedToQueuePayload { Success = true, Message = "New order added to queue" }); }); }