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));
            }
        }
Exemple #2
0
        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"
                });
            });
        }