public static IAkkatectureBuilder AddActorReference <TActor>( this IAkkatectureBuilder builder, IActorRef actorReference) where TActor : ActorBase { var actorRef = new ActorRefProvider <TActor>(actorReference); builder.Services.AddSingleton <ActorRefProvider <TActor> >(actorRef); return(builder); }
public static IAkkatectureBuilder AddAggregateManagerCluster <TAggregateManager, TAggregate, TIdentity>( this IAkkatectureBuilder builder, int numberOfShards = 12) where TAggregateManager : ReceiveActor, IAggregateManager <TAggregate, TIdentity> where TAggregate : IAggregateRoot <TIdentity> where TIdentity : IIdentity { var aggregateManager = ClusterFactory <TAggregateManager, TAggregate, TIdentity> .StartClusteredAggregate( builder.ActorSystem, numberOfShards); var actorRef = new ActorRefOfT <TAggregateManager>(aggregateManager); builder.Services.AddSingleton <IActorRef <TAggregateManager> >(actorRef); return(builder); }