コード例 #1
0
        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);
        }
コード例 #2
0
        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());
        }
コード例 #3
0
 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,
     });
 }