public EventRepository( IUnitOfWork unitOfWork, IDependencyScope scope, IJsonConverter jsonConverter, EventConverterFactoryCache converterFactoryCache) : base(unitOfWork) { _scope = scope; _jsonConverter = jsonConverter; _converterFactoryCache = converterFactoryCache; }
protected override void Load(ContainerBuilder builder) { base.Load(builder); var eventTypes = _eventAssemblies .SelectMany(assemblyName => LoadTypes(assemblyName)) .ToArray(); builder .Register(_ => { var cache = new EventHandlerRunnerCache(); cache.Populate(eventTypes); return(cache); }) .SingleInstance(); builder .Register(_ => { var cache = new EventConverterFactoryCache(); cache.Populate(eventTypes); return(cache); }) .SingleInstance(); builder .RegisterType <EventualConsistentWorker>() .SingleInstance(); builder .RegisterType <NewtonsoftJsonConverter>() .As <IJsonConverter>() .SingleInstance(); builder .RegisterType <Clock>() .SingleInstance(); builder .RegisterType <EventDispatcher>() .InstancePerLifetimeScope(); builder .RegisterType <EventRepository>() .As <IEventRepository>() .InstancePerLifetimeScope(); builder .RegisterType <NpgsqlDbConnector>() .As <IDbConnector>() .InstancePerLifetimeScope(); builder .RegisterType <NpgsqlUnitOfWork>() .As <IUnitOfWork>() .InstancePerLifetimeScope(); builder .RegisterType <AutofacDependencyScope>() .As <IDependencyScope>() .InstancePerLifetimeScope(); }