The sample demonstrates basic command routing between endpoints.
Running the project
- Start all the projects by hitting F5.
- In the Sender's console window send some orders by pressing S
- In the Sender's console window cancel some orders by pressing C
- Both messages are sent to the Receiver which logs a message
Code walk-through
Whenever the Sender sends a CancelOrder
command it must specify the destination endpoint.
var command = new CancelOrder
{
OrderId = orderId
};
await endpointInstance.Send("Samples.CommandRouting.Receiver", command);
Whenever the Sender sends a PlaceOrder
command it does not need to specify a destination.
var command = new PlaceOrder
{
OrderId = orderId,
Value = value
};
await endpointInstance.Send(command);
This is enabled by configuring a message route for the PlaceOrder
command in the endpoint configuration.
var routing = endpointConfiguration.UseTransport(new LearningTransport());
routing.RouteToEndpoint(
messageType: typeof(PlaceOrder),
destination: "Samples.CommandRouting.Receiver"
);