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); }
public AddReferenceCommand(IEntityWithExternalReferences target) { _target = target; }