protected override IRootResolver CreateRootResolver(IEventFlowOptions eventFlowOptions)
        {
            _databasePath = Path.Combine(Path.GetTempPath(), $"{Guid.NewGuid():N}.sqlite");

            using (File.Create(_databasePath)){ }

            var resolver = eventFlowOptions
                           .AddMetadataProvider <AddGuidMetadataProvider>()
                           .ConfigureSQLite(SQLiteConfiguration.New.SetConnectionString($"Data Source={_databasePath};Version=3;"))
                           .UseSQLiteEventStore()
                           .CreateResolver();

            var          connection     = resolver.Resolve <ISQLiteConnection>();
            const string sqlCreateTable = @"
                CREATE TABLE [EventFlow](
                    [GlobalSequenceNumber] [INTEGER] PRIMARY KEY ASC NOT NULL,
                    [BatchId] [uniqueidentifier] NOT NULL,
                    [AggregateId] [nvarchar](255) NOT NULL,
                    [AggregateName] [nvarchar](255) NOT NULL,
                    [Data] [nvarchar](1024) NOT NULL,
                    [Metadata] [nvarchar](1024) NOT NULL,
                    [AggregateSequenceNumber] [int] NOT NULL
                )";
            const string sqlCreateIndex = @"
                CREATE UNIQUE INDEX [IX_EventFlow_AggregateId_AggregateSequenceNumber] ON [EventFlow]
                (
                    [AggregateId] ASC,
                    [AggregateSequenceNumber] ASC
                )";

            connection.ExecuteAsync(Label.Named("create-table"), CancellationToken.None, sqlCreateTable, null).Wait();
            connection.ExecuteAsync(Label.Named("create-index"), CancellationToken.None, sqlCreateIndex, null).Wait();

            return(resolver);
        }
Example #2
0
 public static IEventFlowOptions AddMetadataProviders(this IEventFlowOptions options)
 {
     options
     .AddMetadataProvider <AddGuidMetadataProvider>()
     .AddMetadataProvider <AddMachineNameMetadataProvider>()
     .AddMetadataProvider <AddEventTypeMetadataProvider>();
     return(options);
 }
Example #3
0
        private AspNetCoreEventFlowOptions RegisterMetadataProvider <T>() where T : class, IMetadataProvider
        {
            _options
            .AddMetadataProvider <T>()
            .RegisterServices(s =>
                              s.Register <IHttpContextAccessor, HttpContextAccessor>(Lifetime.Singleton, true));

            return(this);
        }
Example #4
0
        private AspNetCoreEventFlowOptions RegisterMetadataProvider <T>() where T : class, IMetadataProvider
        {
            if (!_hasHttpContextAccessor)
            {
                Register <IHttpContextAccessor, HttpContextAccessor>(Lifetime.Singleton);
                _hasHttpContextAccessor = true;
            }

            _options.AddMetadataProvider <T>();
            return(this);
        }
Example #5
0
        protected override IRootResolver CreateRootResolver(IEventFlowOptions eventFlowOptions)
        {
            var connectionSettings = ConnectionSettings.Create()
                                     .EnableVerboseLogging()
                                     .KeepReconnecting()
                                     .SetDefaultUserCredentials(new UserCredentials("admin", "changeit"))
                                     .Build();

            var resolver = eventFlowOptions
                           .AddMetadataProvider <AddGuidMetadataProvider>()
                           .UseEventStoreEventStore(new IPEndPoint(IPAddress.Loopback, 1113), connectionSettings)
                           .CreateResolver();

            return(resolver);
        }
        protected override IRootResolver CreateRootResolver(IEventFlowOptions eventFlowOptions)
        {
            var connectionSettings = ConnectionSettings.Create()
                .EnableVerboseLogging()
                .KeepReconnecting()
                .SetDefaultUserCredentials(new UserCredentials("admin", "changeit"))
                .Build();

            var resolver = eventFlowOptions
                .AddMetadataProvider<AddGuidMetadataProvider>()
                .UseEventStoreEventStore(new IPEndPoint(IPAddress.Loopback, 1113), connectionSettings)
                .CreateResolver();

            return resolver;
        }
Example #7
0
        protected override IRootResolver CreateRootResolver(IEventFlowOptions eventFlowOptions)
        {
            var connectionSettings = ConnectionSettings.Create()
                                     .EnableVerboseLogging()
                                     .KeepReconnecting()
                                     .KeepRetrying()
                                     .SetDefaultUserCredentials(new UserCredentials("admin", "changeit"))
                                     .Build();

            var resolver = eventFlowOptions
                           .AddMetadataProvider <AddGuidMetadataProvider>()
                           .UseEventStoreEventStore(_eventStoreInstance.ConnectionStringUri, connectionSettings)
                           .CreateResolver();

            return(resolver);
        }
Example #8
0
        public static IEventFlowOptions ConfigureEventStore(this IEventFlowOptions options, EventStoreSettings settings)
        {
            Uri eventStoreUri = GetUriFromConnectionString(settings.ConnectionString);

            var connectionSettings = ConnectionSettings.Create()
                                     .EnableVerboseLogging()
                                     .KeepReconnecting()
                                     .KeepRetrying()
                                     .SetDefaultUserCredentials(new UserCredentials(settings.Username, settings.Password))
                                     .Build();

            IEventFlowOptions eventFlowOptions = options
                                                 .AddMetadataProvider <AddGuidMetadataProvider>()
                                                 .UseEventStoreEventStore(eventStoreUri, connectionSettings);

            return(eventFlowOptions);
        }
        public static IEventFlowOptions ConfigureEventStore(this IEventFlowOptions options, IConfiguration configuration)
        {
            var eventStoreUrl      = configuration["EventStore:Url"];
            var connectionString   = $"ConnectTo={eventStoreUrl}; HeartBeatTimeout=500";
            var eventStoreUri      = GetUriFromConnectionString(connectionString);
            var connectionSettings = ConnectionSettings.Create()
                                     .EnableVerboseLogging()
                                     .KeepReconnecting()
                                     .KeepRetrying()
                                     .SetDefaultUserCredentials(new UserCredentials("admin", "changeit"))
                                     .Build();
            var eventFlowOptions = options
                                   .AddMetadataProvider <AddGuidMetadataProvider>()
                                   .UseEventStoreEventStore(eventStoreUri, connectionSettings);

            return(eventFlowOptions);
        }
Example #10
0
        protected override IRootResolver CreateRootResolver(IEventFlowOptions eventFlowOptions)
        {
            var eventStoreUri = new Uri(Environment.GetEnvironmentVariable("EVENTSTORE_URL"));

            var connectionSettings = ConnectionSettings.Create()
                                     .EnableVerboseLogging()
                                     .KeepReconnecting()
                                     .KeepRetrying()
                                     .SetDefaultUserCredentials(new UserCredentials("admin", "changeit"))
                                     .Build();

            var resolver = eventFlowOptions
                           .AddMetadataProvider <AddGuidMetadataProvider>()
                           .UseEventStoreEventStore(eventStoreUri, connectionSettings)
                           .CreateResolver();

            return(resolver);
        }
        public static IEventFlowOptions ConfigureEventStore(this IEventFlowOptions options)
        {
            //string eventStoreUrl = Environment.GetEnvironmentVariable("EVENTSTOREURL");
            string connectionString = $"ConnectTo=tcp://admin:changeit@localhost:1113; HeartBeatTimeout=500";
            Uri    eventStoreUri    = GetUriFromConnectionString(connectionString);

            ConnectionSettings connectionSettings = ConnectionSettings.Create()
                                                    .EnableVerboseLogging()
                                                    .KeepReconnecting()
                                                    .KeepRetrying()
                                                    .SetDefaultUserCredentials(new UserCredentials("admin", "changeit"))
                                                    .Build();

            IEventFlowOptions eventFlowOptions = options
                                                 .AddMetadataProvider <AddGuidMetadataProvider>()
                                                 .UseEventStoreEventStore(eventStoreUri, connectionSettings);

            return(eventFlowOptions);
        }