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); }
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); } }