/// <inheritdoc /> public virtual async Task <OperationContainer> ProcessAsync(OperationContainer operation, CancellationToken cancellationToken) { ArgumentGuard.NotNull(operation, nameof(operation)); var primaryId = (TId)operation.Resource.GetTypedId(); ISet <IIdentifiable> secondaryResourceIds = operation.GetSecondaryResources(); await _service.RemoveFromToManyRelationshipAsync(primaryId, operation.Request.Relationship.PublicName, secondaryResourceIds, cancellationToken); return(null); }
/// <inheritdoc /> public virtual async Task <OperationContainer> ProcessAsync(OperationContainer operation, CancellationToken cancellationToken) { if (operation == null) { throw new ArgumentNullException(nameof(operation)); } var primaryId = (TId)operation.Resource.GetTypedId(); var secondaryResourceIds = operation.GetSecondaryResources(); await _service.AddToToManyRelationshipAsync(primaryId, operation.Request.Relationship.PublicName, secondaryResourceIds, cancellationToken); return(null); }
protected void TrackLocalIdsForOperation(OperationContainer operation) { if (operation.Kind == OperationKind.CreateResource) { DeclareLocalId(operation.Resource); } else { AssignStringId(operation.Resource); } foreach (var secondaryResource in operation.GetSecondaryResources()) { AssignStringId(secondaryResource); } }
private void ValidateOperation(OperationContainer operation) { if (operation.Kind == OperationKind.CreateResource) { DeclareLocalId(operation.Resource); } else { AssertLocalIdIsAssigned(operation.Resource); } foreach (var secondaryResource in operation.GetSecondaryResources()) { AssertLocalIdIsAssigned(secondaryResource); } if (operation.Kind == OperationKind.CreateResource) { AssignLocalId(operation); } }