public async Task Consume(ConsumeContext <CasePlanInstanceCreatedEvent> context) { var casePlan = await _casePlanCommandRepository.Get(context.Message.CasePlanId, CancellationToken.None); casePlan.IncrementInstance(); await _casePlanCommandRepository.Update(casePlan, CancellationToken.None); await _casePlanCommandRepository.SaveChanges(CancellationToken.None); }
public async Task <CasePlanInstanceResult> Handle(CreateCaseInstanceCommand request, CancellationToken cancellationToken) { var workflowDefinition = await _casePlanCommandRepository.Get(request.CasePlanId, cancellationToken); if (workflowDefinition == null) { throw new UnknownCasePlanException(request.CasePlanId); } var casePlanInstance = CasePlanInstanceAggregate.New(Guid.NewGuid().ToString(), workflowDefinition, request.NameIdentifier, request.Parameters); await _casePlanInstanceCommandRepository.Add(casePlanInstance, cancellationToken); await _casePlanInstanceCommandRepository.SaveChanges(cancellationToken); await _busControl.Publish(casePlanInstance.DomainEvents.First(s => s is CasePlanInstanceCreatedEvent) as CasePlanInstanceCreatedEvent, cancellationToken); return(CasePlanInstanceResult.ToDto(casePlanInstance)); }