public async Task <IActionResult> ListInstances( string definitionId, WorkflowStatus status, CancellationToken cancellationToken) { var definition = await workflowDefinitionStore.GetByIdAsync( definitionId, VersionOptions.Latest, cancellationToken ); if (definition == null) { return(NotFound()); } var instances = await workflowInstanceStore .ListByDefinitionAsync(definitionId, cancellationToken) .ToListAsync(); var model = new WorkflowInstanceListViewModel { WorkflowDefinition = definition, ReturnUrl = Url.Action("Index", new { definitionId, status }), WorkflowInstances = instances.Select( x => new WorkflowInstanceListItemModel { WorkflowInstance = x } ) .ToList() }; return(PartialView("List", model)); }
private async Task <WorkflowDefinitionListDto> CreateWorkflowDefinitionListItemModelAsync( ElsaWorkflowDefinitionVersion workflowDefinition) { var instances = await _workflowInstanceStore .ListByDefinitionAsync(workflowDefinition.DefinitionId) .ToListAsync(); return(new WorkflowDefinitionListDto { WorkflowDefinition = workflowDefinition, AbortedCount = instances.Count(x => x.Status == WorkflowStatus.Aborted), FaultedCount = instances.Count(x => x.Status == WorkflowStatus.Faulted), FinishedCount = instances.Count(x => x.Status == WorkflowStatus.Finished), ExecutingCount = instances.Count(x => x.Status == WorkflowStatus.Executing), }); }
private async Task <WorkflowDefinitionListItemModel> CreateWorkflowDefinitionListItemModelAsync( WorkflowDefinitionVersion workflowDefinition, CancellationToken cancellationToken) { var instances = await _workflowInstanceStore .ListByDefinitionAsync(workflowDefinition.DefinitionId, cancellationToken) .ConfigureAwait(false); return(new WorkflowDefinitionListItemModel { WorkflowDefinition = workflowDefinition, AbortedCount = instances.Count(x => x.Status == WorkflowStatus.Aborted), FaultedCount = instances.Count(x => x.Status == WorkflowStatus.Faulted), FinishedCount = instances.Count(x => x.Status == WorkflowStatus.Finished), ExecutingCount = instances.Count(x => x.Status == WorkflowStatus.Executing), }); }