Example #1
0
        public MongoEventStore(IMongoClient client, IMongoEventStoreSettings settings)
        {
            Settings = settings ?? throw new ArgumentNullException(nameof(settings));
            Client   = client ?? throw new ArgumentNullException(nameof(client));

            Settings.Validate();
        }
Example #2
0
        public static void Validate(this IMongoEventStoreSettings settings)
        {
            if (string.IsNullOrWhiteSpace(settings.Database))
            {
                throw new ArgumentNullException(nameof(settings.Database));
            }

            if (string.IsNullOrWhiteSpace(settings.EventsCollectionName))
            {
                throw new ArgumentNullException(nameof(settings.EventsCollectionName));
            }

            if (string.IsNullOrWhiteSpace(settings.ProjectionsCollectionName))
            {
                throw new ArgumentNullException(nameof(settings.ProjectionsCollectionName));
            }
        }
        public MongoEventStore(IMongoEventStoreSettings settings)
        {
            _connectionString = settings.MongoDbEventStoreConnectionString;
            _database         = settings.MongoDbEventStoreDatabase;

            BsonClassMap.RegisterClassMap <DomainEvent>();

            var assemblies            = AppDomain.CurrentDomain.GetAssemblies();
            var domainEventSubclasses = new List <Type>();

            foreach (var a in assemblies)
            {
                var types = a.GetTypes().Where(t => typeof(DomainEvent).IsAssignableFrom(t));
                domainEventSubclasses.AddRange(types);
            }

            foreach (var subclass in domainEventSubclasses)
            {
                BsonClassMap.LookupClassMap(subclass);
            }
        }
 public MongoSnapshotStore(IMongoEventStoreSettings settings)
 {
     _connectionString = settings.MongoDbEventStoreConnectionString;
     _database         = settings.MongoDbEventStoreDatabase;
 }
 public MongoProjectionRepository(IMongoClient mongoClient, IMongoEventStoreSettings mongoEventStoreSettings)
 {
     _mongoDatabase = mongoClient.GetDatabase(mongoEventStoreSettings.Database);
 }