public ReplaceStudentsAggregate(RepositoryContext context, Guid classId, Guid[] studentsId) : base(context)
        {
            RootEntity = new ClassEnrollmentEntity
            {
                Id = new ClassEnrollmentEntityId
                {
                    ClassId = classId
                }
            };

            var removeBinaryEntities = new DeleteLinksCommandOperation <ClassEnrollmentEntity>(RootEntity, selector: null);

            Enqueue(removeBinaryEntities);

            foreach (var studentId in studentsId)
            {
                RootEntity = new ClassEnrollmentEntity
                {
                    Id = new ClassEnrollmentEntityId
                    {
                        ClassId   = classId,
                        StudentId = studentId
                    },
                    StartedDateTime = DateTime.Now
                };

                var insertBinaryEntity = new InsertEntityCommandOperation <ClassEnrollmentEntity>(RootEntity);

                Enqueue(insertBinaryEntity);
            }
        }
        public ReplacePagesAggregate(RepositoryContext context, BookEntity bookEntity, PageInputDto[] pageInputDtos) : base(context)
        {
            RootEntity = bookEntity;

            var removeLinkedEntities = new DeleteLinksCommandOperation <BookEntity>(bookEntity, selector: null);

            Enqueue(removeLinkedEntities);

            foreach (var pageInputDto in pageInputDtos)
            {
                var addPage = new AddLinkedEntityCommandOperation <BookEntity, PageEntity>(
                    bookEntity,
                    () => new PageEntity
                {
                    Index = pageInputDto.Index
                });

                Enqueue(addPage);
            }
        }