public ProjectionsBooter(TypeContainer <IProjection> handlerTypeContainer, ITenantList tenants, ProjectionHasher hasher, IPublisher <ICommand> publisher) { this.tenants = tenants; this.hasher = hasher; this.publisher = publisher; this.handlerTypeContainer = handlerTypeContainer; }
public CassandraEventStoreFactory(Pipeline.Config.ISettingsBuilder builder, ICassandraEventStoreSettings settings, ITenantList tenants) { if (ReferenceEquals(null, builder) == true) { throw new ArgumentNullException(nameof(builder)); } if (ReferenceEquals(null, settings) == true) { throw new ArgumentNullException(nameof(settings)); } this.settings = settings; this.tenants = tenants; this.builder = builder; tenantStores = new Dictionary <string, IEventStore>(); tenantPlayers = new Dictionary <string, IEventStorePlayer>(); hasTenantsDefined = tenants.GetTenants().Count() > 1 || (tenants.GetTenants().Count() == 1 && tenants.GetTenants().Any(t => t.Equals(CronusAssembly.EldersTenant) == false)); if (hasTenantsDefined) { foreach (var tenant in tenants.GetTenants()) { InitializeTenant(tenant); } } else { InitializeTenant(NoTenantName); } }
public static T WithTenants <T>(this T self, ITenantList tenants) where T : ICronusSettings { Func <ITenantList> combinedTenants = () => new ClientTenantsIncludingElders(tenants); self.Container.RegisterSingleton(typeof(ITenantList), combinedTenants); return(self); }
public ClientTenantsIncludingElders(ITenantList clientTenants = null) { if (ReferenceEquals(null, clientTenants)) { tenants = new List <string>(); } else { this.tenants = new List <string>(clientTenants.GetTenants()); } this.tenants.Add(CronusAssembly.EldersTenant); }
private void EnsureValidTenant(string tenant) { if (string.IsNullOrEmpty(tenant)) { throw new ArgumentNullException(nameof(tenant)); } ITenantList tenants = ServiceProvider.GetRequiredService <ITenantList>(); if (tenants.GetTenants().Where(t => t.Equals(tenant, StringComparison.OrdinalIgnoreCase)).Any() == false) { throw new ArgumentException($"The tenant `{tenant}` is not registered. Make sure that the tenant `{tenant}` is properly configured using `cronus_tenants`. More info at https://github.com/Elders/Cronus/blob/master/doc/Configuration.md", nameof(tenant)); } }
public CronusCassandraEventStoreStartup(IServiceProvider serviceProvider, ITenantList tenants) { this.serviceProvider = serviceProvider; this.tenants = tenants; }