コード例 #1
0
        public async Task DeleteAsync(string workflowDefinitionId, VersionOptions versionOptions, CancellationToken cancellationToken = default)
        {
            if (versionOptions.AllVersions)
            {
                await _workflowInstanceStore.DeleteManyAsync(new WorkflowDefinitionIdSpecification(workflowDefinitionId), cancellationToken);

                await _workflowDefinitionStore.DeleteManyAsync(new Persistence.Specifications.WorkflowDefinitions.WorkflowDefinitionIdSpecification(workflowDefinitionId), cancellationToken);
            }
            else
            {
                var definition = await _workflowDefinitionStore.FindByDefinitionIdAsync(workflowDefinitionId, versionOptions, cancellationToken);

                if (definition != null)
                {
                    await DeleteAsync(definition, cancellationToken);
                }
            }
        }
コード例 #2
0
        public async Task <IActionResult> Handle(BulkDeleteWorkflowsRequest request, CancellationToken cancellationToken = default)
        {
            var count = await _workflowInstanceStore.DeleteManyAsync(new WorkflowInstanceIdsSpecification(request.WorkflowInstanceIds), cancellationToken);

            return(Ok(new
            {
                DeletedWorkflowCount = count
            }));
        }
コード例 #3
0
ファイル: BulkDelete.cs プロジェクト: jruckert/elsa-core
        public async Task <IActionResult> Handle(BulkDeleteWorkflowsRequest request, CancellationToken cancellationToken = default)
        {
            var count = await _workflowInstanceStore.DeleteManyAsync(new WorkflowInstanceIdsSpecification(request.WorkflowInstanceIds), cancellationToken);

            return(Json(new
            {
                DeletedWorkflowCount = count
            }, _serializerSettingsProvider.GetSettings()));
        }
コード例 #4
0
        public async Task <int> DeleteManyAsync(ISpecification <WorkflowInstance> specification, CancellationToken cancellationToken = default)
        {
            var instances = await FindManyAsync(specification, cancellationToken : cancellationToken).ToList();

            var count = await _store.DeleteManyAsync(specification, cancellationToken);

            if (instances.Any())
            {
                foreach (var instance in instances)
                {
                    await _mediator.Publish(new WorkflowInstanceDeleted(instance), cancellationToken);
                }

                await _mediator.Publish(new ManyWorkflowInstancesDeleted(instances), cancellationToken);
            }

            return(count);
        }
コード例 #5
0
ファイル: WorkflowPublisher.cs プロジェクト: tle5/elsa-core
        public async Task DeleteAsync(string workflowDefinitionId, CancellationToken cancellationToken = default)
        {
            await _workflowInstanceStore.DeleteManyAsync(new WorkflowDefinitionIdSpecification(workflowDefinitionId), cancellationToken);

            await _workflowDefinitionStore.DeleteManyAsync(new Persistence.Specifications.WorkflowDefinitions.WorkflowDefinitionIdSpecification(workflowDefinitionId), cancellationToken);
        }
コード例 #6
0
 private async Task DeleteManyAsync(IEnumerable <string> workflowInstanceIds, CancellationToken cancellationToken)
 {
     var specification = new WorkflowInstanceIdsSpecification(workflowInstanceIds);
     await _workflowInstanceStore.DeleteManyAsync(specification, cancellationToken);
 }
コード例 #7
0
 private async Task DeleteManyAsync(ICollection <string> workflowInstanceIds, CancellationToken cancellationToken)
 {
     _logger.LogInformation("Deleting {WorkflowInstanceCount} workflow instances", workflowInstanceIds.Count);
     var specification = new WorkflowInstanceIdsSpecification(workflowInstanceIds);
     await _workflowInstanceStore.DeleteManyAsync(specification, cancellationToken);
 }