// build public static AkkaBuild Build(this AkkaConfig akkaConfig, IServiceCollection services) { var response = new AkkaBuild(ActorSystem.Create(akkaConfig.ActorSystemName, ConfigurationFactory.ParseString(string.Concat(akkaConfig.HoconSections)))); services.AddSingleton(response.ActorSystem); return(response); }
// config add-ons public static AkkaPersistenceConfig UseSqlPersistence(this AkkaConfig akkaConfig, IConfiguration configuration, string connectionName) { // get connection string var connectionString = configuration.GetConnectionString(connectionName); connectionString = connectionString.Replace("\\", "\\\\"); // create SQL hocon sections with connection string injected var hoconSections = akkaConfig.HoconSections.ToList(); hoconSections.Add(GetPersistenceSqlJournalConfig(connectionString)); hoconSections.Add(GetPersistenceSqlSnapshotConfig(connectionString)); return(new AkkaPersistenceConfig(akkaConfig.ActorSystemName, akkaConfig.ActorRefsType, hoconSections)); }