示例#1
0
        public async Task Handle(FlowNodeDefCreatedEvent message, CancellationToken token)
        {
            var record = await _processInstanceQueryRepository.Get(message.AggregateId, token);

            record.Handle(message);
            await _processInstanceCommandRepository.Update(record, token);

            await _processInstanceCommandRepository.SaveChanges(token);
        }
示例#2
0
        public async Task <ProcessInstanceResult> Handle(GetProcessInstanceQuery request, CancellationToken cancellationToken)
        {
            var result = await _caseInstanceQueryRepository.Get(request.Id, cancellationToken);

            if (result == null)
            {
                _logger.LogError($"Process instance '{request.Id}' doesn't exist");
                throw new UnknownFlowInstanceException(string.Format(Global.UnknownProcessInstance, request.Id));
            }

            return(ProcessInstanceResult.ToDto(result));
        }
            public async Task <ProcessInstanceAggregate> MonitorProcessInstance(string id, Func <ProcessInstanceAggregate, bool> callback, CancellationToken token)
            {
                while (true)
                {
                    Thread.Sleep(100);
                    var result = await _processInstanceQueryRepository.Get(id, token);

                    if (callback(result))
                    {
                        return(result);
                    }
                }
            }