public async Task Handle(CasePlanInstanceCreatedEvent message, CancellationToken token) { var record = CasePlanInstanceAggregate.New(new List <DomainEvent> { message }); await _casePlanInstanceCommandRepository.Add(record, token); await _casePlanInstanceCommandRepository.SaveChanges(token); }
public new CasePlanInstanceAggregate Build() { var files = new List <CaseFileItemInstance>(); foreach (var builder in _builders) { files.Add(builder.Build() as CaseFileItemInstance); } var result = CasePlanInstanceAggregate.New(CasePlanInstanceId, base.InternalBuild() as StageElementInstance, files); return(result); }
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)); }
public async Task <CasePlanInstanceResult> Handle(CreateCaseInstanceCommand request, CancellationToken cancellationToken) { var workflowDefinition = await _casePlanQueryRepository.Get(request.CasePlanId, cancellationToken); if (workflowDefinition == null) { throw new UnknownCasePlanException(request.CasePlanId); } var permissions = request.Permissions == null ? new List <CasePlanInstanceRole>() : request.Permissions.Select(_ => new CasePlanInstanceRole { Id = _.RoleId, Claims = _.Claims.ToList() }).ToList(); var casePlanInstance = CasePlanInstanceAggregate.New(Guid.NewGuid().ToString(), workflowDefinition, request.NameIdentifier, permissions, request.Parameters); await _commitAggregateHelper.Commit(casePlanInstance, casePlanInstance.GetStreamName(), cancellationToken); return(CasePlanInstanceResult.ToDto(casePlanInstance)); }