public FileEventStore(string baseDirectory, ITypeCatalog typeCatalog) { this.baseDirectory = baseDirectory; if (!Directory.Exists(baseDirectory)) Directory.CreateDirectory(baseDirectory); var domainEventDerivedTypes = typeCatalog.GetDerivedTypes(typeof(DomainEvent)); serializer = new DataContractSerializer(typeof(DomainEvent), domainEventDerivedTypes); }
public MongoEventStore(string connectionString, ITypeCatalog typeCatalog) { _eventHashRef = new Dictionary<string, string>(); typeCatalog.GetDerivedTypes(typeof(DomainEvent)).ToList(). ForEach(x => BsonClassMap.RegisterClassMap(new DomainEventMapper(x, _eventHashRef))); var connection = new MongoUrlBuilder(connectionString); _collection = MongoServer.Create(connection.ToMongoUrl()).GetDatabase(connection.DatabaseName).GetCollection<DomainEvent>("events"); }
public FileEventStore(string baseDirectory, ITypeCatalog typeCatalog) { this.baseDirectory = baseDirectory; if (!Directory.Exists(baseDirectory)) { Directory.CreateDirectory(baseDirectory); } var domainEventDerivedTypes = typeCatalog.GetDerivedTypes(typeof(DomainEvent)); serializer = new DataContractSerializer(typeof(DomainEvent), domainEventDerivedTypes); }
private static MongoConfiguration BuildMongoConfiguration(ITypeCatalog domainEventTypeCatalog, string connectionString) { var configurationBuilder = new MongoConfigurationBuilder(); configurationBuilder.ConnectionString(connectionString); configurationBuilder.Mapping(mapping => { mapping.DefaultProfile(profile => profile.SubClassesAre(t => t.IsSubclassOf(typeof(DomainEvent)))); domainEventTypeCatalog .GetDerivedTypes(typeof(DomainEvent)) .ToList() .ForEach(type => MapEventType(type, mapping)); }); return configurationBuilder.BuildConfiguration(); }
private static MongoConfiguration BuildMongoConfiguration(ITypeCatalog snapshotTypeCatalog, string connectionString) { var configurationBuilder = new MongoConfigurationBuilder(); configurationBuilder.ConnectionString(connectionString); configurationBuilder.Mapping(mapping => { mapping.DefaultProfile(profile => profile.SubClassesAre(type => type.IsSubclassOf(typeof(Snapshot)))); snapshotTypeCatalog .GetDerivedTypes(typeof(Snapshot)) .ToList() .ForEach(type => MapEventType(type, mapping)); }); return(configurationBuilder.BuildConfiguration()); }
public Type[] GetDerivedTypes(Type type) { return(typeCatalog.GetDerivedTypes(type)); }