public async Task <CasePlanResult> Handle(GetCasePlanQuery request, CancellationToken cancellationToken)
        {
            var result = await _queryRepository.Get(request.Id, cancellationToken);

            if (result == null)
            {
                throw new UnknownCasePlanException(request.Id);
            }

            return(CasePlanResult.ToDto(result));
        }
Esempio n. 2
0
        public async Task Handle(CasePlanInstanceCreatedEvent message, CancellationToken token)
        {
            var casePlan = await _casePlanQueryRepository.Get(message.CasePlanId, token);

            if (casePlan == null)
            {
                return;
            }

            casePlan.IncrementInstance();
            await _casePlanCommandRepository.Update(casePlan, token);

            await _casePlanCommandRepository.SaveChanges(token);
        }
        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));
        }