示例#1
0
        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;
                }
            }
        }
示例#2
0
        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;
                }
            }
        }