public async Task <ActionResult <PagedResult <ProcessInstanceModel> > > Get([FromBody] ProcessInstanceFilter filter) { var result = new PagedResult <ProcessInstanceModel>(); var query = this.runtimeManager.CreateInstanceQuery(); if (filter == null) { filter = new ProcessInstanceFilter(); } if (filter.AnyStates != null && filter.AnyStates.Length > 0) { query.SetStateAny(filter.AnyStates); } if (filter.State != null) { query.SetState(filter.State.Value); } var list = await query.ListAsync(filter.Page, filter.PageSize); result.Count = await query.CountAsync(); result.Page = filter.Page; result.PageSize = filter.PageSize; result.Items = list.Select(x => ProcessInstanceModel.Create(x)) .ToList(); return(result); }
public async Task <ActionResult <ProcessInstanceModel> > Get(long id) { var item = await this.runtimeManager.CreateInstanceQuery() .SetId(id) .SingleAsync(); if (item != null) { return(ProcessInstanceModel.Create(item)); } return(this.NotFound()); }
public static ProcessInstanceAggregate ToDomain(this ProcessInstanceModel processInstance) { return(new ProcessInstanceAggregate { AggregateId = processInstance.AggregateId, CreateDateTime = processInstance.CreateDateTime, ProcessFileName = processInstance.ProcessFileName, Version = processInstance.Version, NameIdentifier = processInstance.NameIdentifier, UpdateDateTime = processInstance.UpdateDateTime, Status = (ProcessInstanceStatus)processInstance.Status, ElementInstances = new ConcurrentBag <FlowNodeInstance>(processInstance.ElementInstances.Select(_ => _.ToDomain()).ToList()), Interfaces = new ConcurrentBag <BPMNInterface>(processInstance.Interfaces.Select(_ => _.ToDomain()).ToList()), StateTransitions = new ConcurrentBag <StateTransitionNotification>(processInstance.StateTransitions.Select(_ => _.ToDomain()).ToList()), ExecutionPathLst = new ConcurrentBag <ExecutionPath>(processInstance.ExecutionPathLst.Select(_ => _.ToDomain()).ToList()), ElementDefs = new ConcurrentBag <BaseFlowNode>(processInstance.ElementDefs.Select(_ => _.ToDomain()).ToList()), ItemDefs = new ConcurrentBag <ItemDefinition>(processInstance.ItemDefs.Select(_ => _.ToDomain()).ToList()), Messages = new ConcurrentBag <Message>(processInstance.Messages.Select(_ => _.ToDomain()).ToList()), SequenceFlows = new ConcurrentBag <SequenceFlow>(processInstance.SequenceFlows.Select(_ => _.ToDomain()).ToList()), ProcessFileId = processInstance.ProcessFileId, }); }