Ejemplo n.º 1
0
        public Task <PagedCollection <PersonByName> > FindOtherPeopleWithTheSameName()
        {
            var query = new FindPeopleByName {
                Term = Name.Full
            };

            return(DomainQueryDispatcher.Execute(query));
        }
Ejemplo n.º 2
0
        public async Task AddPerson(Person person)
        {
            if (_peopleIds.Contains(person.Id))
            {
                return;
            }

            if (person.BelongsToTeam())
            {
                var otherTeamName = await DomainQueryDispatcher.Execute(new FindTeamNameById { TeamId = person.TeamId });

                throw new DomainException($"{person.Name.Full} already belongs to team {otherTeamName}");
            }

            _peopleIds.Add(person.Id);
        }
Ejemplo n.º 3
0
        static async Task RunAsync()
        {
            var container = CreateContainer();

            using (var scope = container.BeginLifetimeScope())
            {
                var uow        = scope.Resolve <IDomainUnitOfWork>();
                var db         = scope.Resolve <MyDbContext>();
                var repository = scope.Resolve <IRepository <Person> >();
                var person1    = await repository.Load(new PersonId("person1")); //new Person(new PersonId("person2"), "Test", "Person");

                person1.ChangeName("x", "y");
                await person1.DoSomething();

                //var person2 = await repository.Load(new PersonId("person2")); //new Person(new PersonId("person2"), "Test", "Person");
                //await repository.Add(person);
                var people = await DomainQueryDispatcher.Execute(new FindPeople());

                await uow.Commit();

                await db.SaveChangesAsync();
            }
        }