public static CreateActorRouteMessage ForAggregate(string name, IAggregateCommandsHandlerDesriptor descriptor) { var messageRoutes = descriptor.RegisteredCommands.Select(c => new MessageRoute ( MessageMetadataEnvelop.GenericForType(c.CommandType), c.Property )).ToArray(); var hubType = typeof(AggregateHubActor <>).MakeGenericType(descriptor.AggregateType); return(new CreateActorRouteMessage(hubType, name, PoolKind.None, messageRoutes)); }
public Task RegisterAggregate(IAggregateCommandsHandlerDesriptor descriptor) { var name = $"Aggregate_{descriptor.AggregateType.Name}"; var createActorRoute = CreateActorRouteMessage.ForAggregate(name, descriptor); return _routingActor.Ask<RouteCreated>(createActorRoute); }