Example #1
0
        private IEnumerable <DiscoveredModel> GetModels(DiscoveryContext context)
        {
            IEnumerable <System.Type> cronusJobs = context.FindService <ICronusJob <object> >();

            foreach (var job in cronusJobs)
            {
                yield return(new DiscoveredModel(job, job, ServiceLifetime.Transient));
            }

            yield return(new DiscoveredModel(typeof(TypeContainer <ICronusJob <object> >), new TypeContainer <ICronusJob <object> >(cronusJobs)));

            yield return(new DiscoveredModel(typeof(InMemoryCronusJobRunner), typeof(InMemoryCronusJobRunner), ServiceLifetime.Transient));

            yield return(new DiscoveredModel(typeof(ICronusJobRunner), typeof(InMemoryCronusJobRunner), ServiceLifetime.Transient));

            yield return(new DiscoveredModel(typeof(IJobNameBuilder), typeof(DefaultJobNameBuilder), ServiceLifetime.Scoped));

            yield return(new DiscoveredModel(typeof(DefaultJobNameBuilder), typeof(DefaultJobNameBuilder), ServiceLifetime.Scoped));

            yield return(new DiscoveredModel(typeof(RebuildIndex_EventToAggregateRootId_JobFactory), typeof(RebuildIndex_EventToAggregateRootId_JobFactory), ServiceLifetime.Transient));

            yield return(new DiscoveredModel(typeof(Projection_JobFactory), typeof(Projection_JobFactory), ServiceLifetime.Transient));

            yield return(new DiscoveredModel(typeof(RebuildIndex_MessageCounter_JobFactory), typeof(RebuildIndex_MessageCounter_JobFactory), ServiceLifetime.Transient));

            yield return(new DiscoveredModel(typeof(ReplayPublicEvents_JobFactory), typeof(ReplayPublicEvents_JobFactory), ServiceLifetime.Transient));
        }
Example #2
0
        IEnumerable <DiscoveredModel> GetModels(DiscoveryContext context)
        {
            // settings
            var cassandraSettings = context.FindService <ICassandraProjectionStoreSettings>();

            foreach (var setting in cassandraSettings)
            {
                yield return(new DiscoveredModel(setting, setting, ServiceLifetime.Transient));
            }

            // main interfaces
            //yield return new DiscoveredModel(typeof(IProjectionReader), typeof(ProjectionRepository), ServiceLifetime.Transient);
            //yield return new DiscoveredModel(typeof(IProjectionWriter), typeof(ProjectionRepository), ServiceLifetime.Transient);
            //yield return new DiscoveredModel(typeof(ProjectionRepository), typeof(ProjectionRepository), ServiceLifetime.Transient);
            //yield return new DiscoveredModel(typeof(ProjectionRepositoryWithFallback<>), typeof(ProjectionRepositoryWithFallback<>), ServiceLifetime.Transient);
            //yield return new DiscoveredModel(typeof(ProjectionRepositoryWithFallback<,>), typeof(ProjectionRepositoryWithFallback<,>), ServiceLifetime.Transient);

            // schema
            yield return(new DiscoveredModel(typeof(IInitializableProjectionStore), typeof(CassandraProjectionStoreInitializer), ServiceLifetime.Transient)
            {
                CanOverrideDefaults = true
            });

            yield return(new DiscoveredModel(typeof(IProjectionStoreStorageManager), typeof(CassandraProjectionStoreSchema), ServiceLifetime.Transient));

            yield return(new DiscoveredModel(typeof(CassandraProjectionStoreSchema), typeof(CassandraProjectionStoreSchema), ServiceLifetime.Transient));

            // projection store
            yield return(new DiscoveredModel(typeof(IProjectionStore), provider => provider.GetRequiredService <SingletonPerTenant <CassandraProjectionStore> >().Get(), ServiceLifetime.Transient)
            {
                CanOverrideDefaults = true
            });

            yield return(new DiscoveredModel(typeof(CassandraProjectionStore), typeof(CassandraProjectionStore), ServiceLifetime.Transient));

            yield return(new DiscoveredModel(typeof(CassandraProjectionStore <>), typeof(CassandraProjectionStore <>), ServiceLifetime.Transient));

            // snapshot store
            yield return(new DiscoveredModel(typeof(ISnapshotStore), typeof(CassandraSnapshotStore), ServiceLifetime.Transient)
            {
                CanOverrideDefaults = true
            });

            yield return(new DiscoveredModel(typeof(CassandraSnapshotStore), typeof(CassandraSnapshotStore), ServiceLifetime.Transient));

            yield return(new DiscoveredModel(typeof(CassandraSnapshotStore <>), typeof(CassandraSnapshotStore <>), ServiceLifetime.Transient));

            // cassandra
            yield return(new DiscoveredModel(typeof(CassandraProvider), typeof(CassandraProvider), ServiceLifetime.Transient));

            yield return(new DiscoveredModel(typeof(ICassandraProvider), provider => provider.GetRequiredService <SingletonPerTenant <CassandraProvider> >().Get(), ServiceLifetime.Transient));

            // naming
            yield return(new DiscoveredModel(typeof(IKeyspaceNamingStrategy), typeof(KeyspacePerTenantKeyspace), ServiceLifetime.Transient));

            yield return(new DiscoveredModel(typeof(NoKeyspaceNamingStrategy), typeof(NoKeyspaceNamingStrategy), ServiceLifetime.Transient));

            yield return(new DiscoveredModel(typeof(KeyspacePerTenantKeyspace), typeof(KeyspacePerTenantKeyspace), ServiceLifetime.Transient));

            var projectionTypes = context.FindService <IProjectionDefinition>().ToList();

            yield return(new DiscoveredModel(typeof(ProjectionsProvider), provider => new ProjectionsProvider(projectionTypes), ServiceLifetime.Singleton));

            yield return(new DiscoveredModel(typeof(CassandraSnapshotStoreSchema), typeof(CassandraSnapshotStoreSchema), ServiceLifetime.Transient));

            yield return(new DiscoveredModel(typeof(CassandraReplicationStrategyFactory), typeof(CassandraReplicationStrategyFactory), ServiceLifetime.Singleton));

            yield return(new DiscoveredModel(typeof(ICassandraReplicationStrategy), provider => provider.GetRequiredService <CassandraReplicationStrategyFactory>().GetReplicationStrategy(), ServiceLifetime.Transient));

            yield return(new DiscoveredModel(typeof(VersionedProjectionsNaming), typeof(VersionedProjectionsNaming), ServiceLifetime.Singleton));

            yield return(new DiscoveredModel(typeof(ISnapshotStrategy), provider => new EventsCountSnapshotStrategy(100), ServiceLifetime.Singleton)
            {
                CanOverrideDefaults = true
            });

            yield return(new DiscoveredModel(typeof(InMemoryProjectionVersionStore), typeof(InMemoryProjectionVersionStore), ServiceLifetime.Singleton));

            yield return(new DiscoveredModel(typeof(IProjectionTableRetentionStrategy), typeof(RetainOldProjectionRevisions), ServiceLifetime.Transient));

            yield return(new DiscoveredModel(typeof(RetainOldProjectionRevisions), typeof(RetainOldProjectionRevisions), ServiceLifetime.Transient));
        }