public SaveEmployeePersonCommandAggregate(DataAccess.RepositoryContext context, string firstName, int salary) : base(context)
        {
            Person = new PersonEntity
            {
                FirstName = firstName
            };

            var savePerson = new SaveEntityCommandOperation <PersonEntity>(Person);

            Enqueue(savePerson);

            RootEntity = new EmployeeEntity
            {
                Salary = salary
            };

            var saveEmployee = new SaveEntityCommandOperation <EmployeeEntity>(RootEntity,
                                                                               new EntityDependency[]
            {
                new EntityDependency
                {
                    Entity = Person
                }
            });

            Enqueue(saveEmployee);
        }
Esempio n. 2
0
        public PersonFriendsCommandAggregate(RepositoryContext context, PersonWithFriendsDto personWithFriends) : base(context)
        {
            RootEntity = new PersonEntity
            {
                FirstName = personWithFriends.FirstName
            };

            Enqueue(
                new SaveEntityCommandOperation <PersonEntity>(RootEntity)
                );

            foreach (var friend in personWithFriends.Friends)
            {
                var friendEntity = new PersonEntity
                {
                    FirstName = friend.FirstName
                };

                var createFriend = new SaveEntityCommandOperation <PersonEntity>(friendEntity);

                Enqueue(createFriend);

                var binaryEntity = new FriendshipEntity
                {
                    AcceptedDateTime = friend.AcceptedDateTime
                };

                var addBinaryEntity = new InsertEntityCommandOperation <FriendshipEntity>(
                    binaryEntity,
                    new EntityDependency[]
                {
                    new EntityDependency
                    {
                        Entity = RootEntity
                    },
                    new EntityDependency
                    {
                        Entity = friendEntity
                    }
                }
                    );

                Enqueue(addBinaryEntity);
            }
        }