public async Task <int> DeleteManyAsync(ISpecification <WorkflowSetting> specification, CancellationToken cancellationToken = default) { var webhookDefinitions = await FindManyAsync(specification, cancellationToken : cancellationToken).ToList(); if (!webhookDefinitions.Any()) { return(0); } foreach (var webhookDefinition in webhookDefinitions) { await _mediator.Publish(new WorkflowSettingsDeleting(webhookDefinition), cancellationToken); } await _mediator.Publish(new ManyWorkflowSettingsDeleting(webhookDefinitions), cancellationToken); var count = await _store.DeleteManyAsync(specification, cancellationToken); foreach (var instance in webhookDefinitions) { await _mediator.Publish(new WorkflowSettingsDeleted(instance), cancellationToken); } await _mediator.Publish(new ManyWorkflowSettingsDeleted(webhookDefinitions), cancellationToken); return(count); }
public Task <int> DeleteManyAsync(ISpecification <WorkflowSetting> specification, CancellationToken cancellationToken) => _store.DeleteManyAsync(specification, cancellationToken);