Пример #1
0
        private Result <IEnumerable <ExternalReference>, OperationFailure> DeleteExternalReferences(IEntityWithExternalReferences root)
        {
            if (root == null)
            {
                return(OperationFailure.NotFound);
            }

            if (!_authorizationContext.AllowModify(root))
            {
                return(OperationFailure.Forbidden);
            }

            using var transaction = _transactionManager.Begin(IsolationLevel.Serializable);
            var systemExternalReferences = root.ExternalReferences.ToList();

            if (systemExternalReferences.Count == 0)
            {
                return(systemExternalReferences);
            }

            foreach (var reference in systemExternalReferences)
            {
                _domainEvents.Raise(new EntityDeletedEvent <ExternalReference>(reference));
                _referenceRepository.Delete(reference);
            }

            transaction.Commit();
            return(systemExternalReferences);
        }
Пример #2
0
 public AddReferenceCommand(IEntityWithExternalReferences target)
 {
     _target = target;
 }