Exemplo n.º 1
0
        static void Main(string[] args)
        {
            var builderOption = BuilderOptions
                                .New()
                                .UseStructureMapRegistration()
                                .UseDefaultConfig()
                                .UseMongoPersistent()
                                .Register(typeof(UserCommandHandle).Assembly);

            var resolver = builderOption.ServiceRegistration.CreateResolver();

            //Command

            var userQueryService = resolver.Resolve <QueryService <UserReadModel> >();
            var todoQueryService = resolver.Resolve <QueryService <ToDoReadModel> >();

            foreach (var i in Enumerable.Range(1, 1000))
            {
                var personId = Guid.NewGuid();
                var bus      = resolver.Resolve <IBus>();
                bus.Send(new UserRegisterCommand {
                    AggregateId = personId, UserName = $"Sam Pang{i}", Password = $"Password{i}"
                });
                bus.Send(new CreateToDoCommand {
                    AggregateId = Guid.NewGuid(), Title = $"Todo Title{i}", Description = $"Todo Description{i}", UserId = personId
                });
            }

            //Query
            var persons = userQueryService.GetAll();

            persons.ForEach(a =>
            {
                Console.WriteLine($"{a.Id},{a.UserName},{a.Password}");
                Console.WriteLine($"Dodo list count:{a.MyTodoList.Count}");
                a.MyTodoList.ForEach(t =>
                {
                    var todo = todoQueryService.GetById(t);
                    Console.WriteLine($"{todo.Id},{todo.Title},{todo.Description}");
                });
            });

            Console.ReadLine();
        }
Exemplo n.º 2
0
        //not suggest to use relation database.
        static void Main(string[] args)
        {
            var dbContextProvider = new DbContextProvider();
            var builderOption     = BuilderOptions
                                    .New()
                                    .UseStructureMapRegistration()
                                    .UseDefaultConfig()
                                    .UseMsSqlPersistent(a => dbContextProvider)
                                    .Register(typeof(UserRegisterCommand).Assembly);

            var resolver = builderOption.ServiceRegistration.CreateResolver();

            //Command

            var userQueryService = resolver.Resolve <QueryService <UserReadModel> >();
            var todoQueryService = resolver.Resolve <QueryService <ToDoReadModel> >();
            var bus = resolver.Resolve <IBus>();

            foreach (var i in Enumerable.Range(1, 100))
            {
                Console.WriteLine(i);
                var personId = Guid.NewGuid();
                bus.Send(new UserRegisterCommand {
                    AggregateId = personId, UserName = $"Sam Pang{i}", Password = $"Password{i}"
                });
                bus.Send(new CreateToDoCommand {
                    AggregateId = Guid.NewGuid(), Title = $"Todo Title{i}", Description = $"Todo Description{i}", UserId = personId
                });
            }

            //Query
            var persons = userQueryService.GetAll();
            var todos   = todoQueryService.GetAll();

            persons.ForEach(a =>
            {
                Console.WriteLine($"{a.Id},{a.UserName},{a.Password}");
                foreach (var toDo in todos.Where(t => t.Creater == a.Id))
                {
                    Console.WriteLine($"{toDo.Id},{toDo.Title},{toDo.Description}");
                }
            });
            Console.ReadLine();
        }