Esempio n. 1
0
        public Task Handle(
            SendOrderRequestToLocalWarehouse message,
            CancellationToken cancellationToken)
        {
            var sender = this.configuration["Name"];

            var request = new Warehouse.Messages.OrderRequest(
                Guid.NewGuid().ToString(),
                message.Order.CountryCode,
                message.Order.Product,
                sender,
                Guid.NewGuid().ToString());

            this.localOrderRequests.Add(request.CorrelationId, message.Order);

            this.bus.Publish(request, $"Location.{message.Order.CountryCode}");

            this.logger.LogInformation("Sent order request to local warehouse.");

            return(Task.FromResult(true));
        }
        public Task Handle(
            SendOrderRequestToAllWarehouses message,
            CancellationToken cancellationToken)
        {
            var sender        = this.configuration["Name"];
            var correlationId = Guid.NewGuid().ToString();

            var warehouseORderRequest = new Warehouse.Messages.OrderRequest(
                Guid.NewGuid().ToString(),
                message.CustomerOrderRequest.CountryCode,
                message.CustomerOrderRequest.Product,
                sender,
                correlationId);

            var aggreateRequest = new Aggregate <Retailer.Messages.OrderRequest, Warehouse.Messages.OrderResponse>(
                correlationId, 2, message.CustomerOrderRequest);

            this.globalOrderRequests.Add(correlationId, aggreateRequest);

            this.bus.Publish(warehouseORderRequest, "Location.ALL");

            return(Task.FromResult(true));
        }