Esempio n. 1
0
        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));
        }