public static async Task Main() { SetupSerialization(); var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); var configuration = builder.Build(); var mongoDbConnectionString = configuration["mongoTest"]; _eventStore = new MongoDbEventStore <IEvent>(mongoDbConnectionString); _eventStore.AutonIncrementStrategy = new IncrementCountersStrategy <IEvent>(_eventStore); _eventStore.RegisterDispatchers( _moviesProjection = new InMemoryMoviesProjection(), _totalMoviesProjection = new InMemoryTotalMoviesProjection()); _store = new AggregateStore(_eventStore, "sample"); await RebuildAsync().ConfigureAwait(false); Console.WriteLine("Movie catalog sample!"); while (true) { Console.WriteLine(""); Console.WriteLine("Actions:"); Console.WriteLine(" -i: Insert a movie"); Console.WriteLine(" -b: Bulk insert movies"); Console.WriteLine(" -a: Parallel bulk insert movies"); Console.WriteLine(" -u: Update movie"); Console.WriteLine(" -l: List events"); Console.WriteLine(" -p: Print movies"); Console.WriteLine(" -t: Total movies"); Console.WriteLine(" -m: Load movie aggregate"); Console.WriteLine(" -r: Rollback"); Console.WriteLine(" -s: Change auto-increment strategy"); Console.WriteLine(" -e: Exit"); Console.Write("Choose an action: "); switch (Console.ReadLine()) { case "i": await InsertMovieAsync().ConfigureAwait(false); break; case "b": await BulkInsertMoviesAsync().ConfigureAwait(false); break; case "a": await ParallelBulkInsertMoviesAsync().ConfigureAwait(false); break; case "u": await UpdateMovieAsync().ConfigureAwait(false); break; case "l": await ListEventsAsync().ConfigureAwait(false); break; case "m": await LoadMovieAsync().ConfigureAwait(false); break; case "r": await RollbackAsync().ConfigureAwait(false); break; case "p": PrintMovies(); break; case "t": TotalMovies(); break; case "s": await ChangeStrategyAsync().ConfigureAwait(false); break; case "e": return; } } }
public static void Main() { SetupSerialization(); var mongoDbConnectionString = ConfigurationManager.ConnectionStrings["mongoTest"].ConnectionString; _eventStore = new MongoDbEventStore <IEvent>(mongoDbConnectionString); _eventStore.AutonIncrementStrategy = new IncrementCountersStrategy <IEvent>(_eventStore); _eventStore.RegisterDispatchers( _moviesProjection = new InMemoryMoviesProjection(), _totalMoviesProjection = new InMemoryTotalMoviesProjection()); _store = new AggregateStore(_eventStore, "sample"); RebuildAsync().Wait(); Console.WriteLine("Movie catalog sample!"); while (true) { Console.WriteLine(""); Console.WriteLine("Actions:"); Console.WriteLine(" -i: Insert a movie"); Console.WriteLine(" -b: Bulk insert movies"); Console.WriteLine(" -a: Parallel bulk insert movies"); Console.WriteLine(" -u: Update movie"); Console.WriteLine(" -l: List events"); Console.WriteLine(" -p: Print movies"); Console.WriteLine(" -t: Total movies"); Console.WriteLine(" -m: Load movie aggregate"); Console.WriteLine(" -r: Rollback"); Console.WriteLine(" -s: Change auto-increment strategy"); Console.WriteLine(" -e: Exit"); Console.Write("Choose an action: "); switch (Console.ReadLine()) { case "i": InsertMovieAsync().Wait(); break; case "b": BulkInsertMoviesAsync().Wait(); break; case "a": ParallelBulkInsertMoviesAsync().Wait(); break; case "u": UpdateMovieAsync().Wait(); break; case "l": ListEventsAsync().Wait(); break; case "m": LoadMovieAsync().Wait(); break; case "r": RollbackAsync().Wait(); break; case "p": PrintMovies(); break; case "t": TotalMovies(); break; case "s": ChangeStrategyAsync().Wait(); break; case "e": return; } } }