/// <summary>
 /// Configures events to be persisted asynchronously
 /// </summary>
 /// <param name="configuration"><see cref="IEventsConfiguration"/> instance to configure</param>
 /// <param name="configurationAction">Callback for further configuring the <see cref="IEventsConfiguration"/></param>
 /// <returns>Chained <see cref="IConfigure"/> instance</returns>
 public static IConfigure Asynchronous(this IEventsConfiguration configuration, Action <IEventsConfiguration> configurationAction = null)
 {
     configuration.UncommittedEventStreamCoordinatorType = typeof(AsynchronousUncommittedEventStreamCoordinator);
     if (configurationAction != null)
     {
         configurationAction(configuration);
     }
     return(Configure.Instance);
 }
示例#2
0
        /// <summary>
        /// Configures events to be stored in an Azure DocumentDB
        /// </summary>
        /// <param name="eventsConfiguration"><see cref="IEventsConfiguration"/> being fluently configured</param>
        /// <param name="configureCallback"><see cref="Action{EventStorageConfiguration}">Callback</see> to get called for configuration</param>
        /// <returns></returns>
        public static IConfigure UsingDocumentDB(this IEventsConfiguration eventsConfiguration, Action <EventStorageConfiguration> configureCallback)
        {
            eventsConfiguration.EventStoreType         = typeof(EventStore);
            eventsConfiguration.EventSubscriptionsType = typeof(EventSubscriptions);
            var configuration = new EventStorageConfiguration();

            configureCallback(configuration);
            Configure.Instance.Container.Bind <EventStorageConfiguration>(configuration);
            return(Configure.Instance);
        }
        public static IConfigure UsingOracleEventStore(this IEventsConfiguration eventsConfiguration, Action <EventStoreConfiguration> configureCallback)
        {
            eventsConfiguration.EventStoreType = typeof(EventStore);
            var configuration = new EventStoreConfiguration();

            configureCallback(configuration);

            Configure.Instance.Container.Bind(configuration);
            return(Configure.Instance);
        }
        public static IConfigure UsingOracleEventStore(this IEventsConfiguration eventsConfiguration, string connectionString, Action <EventStoreConfiguration> configureCallback = null)
        {
            eventsConfiguration.EventStoreType = typeof(EventStore);
            var configuration = new EventStoreConfiguration
            {
                Connection = new OracleConnection(connectionString)
            };

            if (configureCallback != null)
            {
                configureCallback(configuration);
            }

            Configure.Instance.Container.Bind(configuration);
            return(Configure.Instance);
        }
示例#5
0
        public static IConfigure UsingRavenDB(this IEventsConfiguration eventsConfiguration, Action <RegularEventStoreConfiguration> configureCallback)
        {
            eventsConfiguration.EventStoreType         = typeof(EventStore);
            eventsConfiguration.EventSubscriptionsType = typeof(EventSubscriptions);

            var configuration = new RegularEventStoreConfiguration();

            configureCallback(configuration);
            Configure.Instance.Container.Bind <IEventStoreConfiguration>(configuration);

            var eventSubscriptionsConfiguration = new RegularEventSubscriptionsConfiguration();

            configuration.CopyTo(eventSubscriptionsConfiguration);
            Configure.Instance.Container.Bind <IEventSubscriptionsConfiguration>(eventSubscriptionsConfiguration);

            return(Configure.Instance);
        }
示例#6
0
        /// <summary>
        /// Configures the <see cref="IEventStore"/>
        /// </summary>
        /// <param name="eventsConfiguration"><see cref="IEventsConfiguration"/> to configure</param>
        /// <param name="path">Path to where the event store should live</param>
        /// <returns>Chained <see cref="IConfigure"/> for fluent configuration</returns>
        public static IConfigure UsingFiles(this IEventsConfiguration eventsConfiguration, string path)
        {
            eventsConfiguration.EventStoreType         = typeof(EventStore);
            eventsConfiguration.EventSubscriptionsType = typeof(EventSubscriptions);
            eventsConfiguration.UncommittedEventStreamCoordinatorType = typeof(UncommittedEventStreamCoordinator);

            if (!Path.IsPathRooted(path))
            {
                path = Path.Combine(Directory.GetCurrentDirectory(), path);
            }

            var configuration = new EventStoreConfiguration
            {
                Path = path
            };

            Configure.Instance.Container.Bind <EventStoreConfiguration>(configuration);

            return(Configure.Instance);
        }