Ejemplo n.º 1
0
 public ProjectionsBooter(TypeContainer <IProjection> handlerTypeContainer, ITenantList tenants, ProjectionHasher hasher, IPublisher <ICommand> publisher)
 {
     this.tenants              = tenants;
     this.hasher               = hasher;
     this.publisher            = publisher;
     this.handlerTypeContainer = handlerTypeContainer;
 }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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));
            }
        }
Ejemplo n.º 6
0
 public CronusCassandraEventStoreStartup(IServiceProvider serviceProvider, ITenantList tenants)
 {
     this.serviceProvider = serviceProvider;
     this.tenants         = tenants;
 }