public async Task Handle(CaseFileUpdatedEvent @event, CancellationToken cancellationToken)
        {
            var caseFile = await _caseFileQueryRepository.Get(@event.AggregateId, cancellationToken);

            caseFile.Handle(@event);
            await _caseFileCommandRepository.Update(caseFile, cancellationToken);

            await _caseFileCommandRepository.SaveChanges(cancellationToken);
        }
        public async Task <CaseFileResult> Handle(GetCaseFileQuery request, CancellationToken cancellationToken)
        {
            var result = await _queryRepository.Get(request.Id, cancellationToken);

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

            return(result);
        }
        public async Task Handle(CaseFilePublishedEvent @event, CancellationToken cancellationToken)
        {
            var caseFile = await _caseFileQueryRepository.Get(@event.AggregateId, cancellationToken);

            var tDefinitions = CMMNParser.ParseWSDL(caseFile.Payload);

            foreach (var casePlan in CMMNParser.ExtractCasePlans(tDefinitions, caseFile))
            {
                await _casePlanCommandRepository.Add(casePlan, cancellationToken);
            }

            await _casePlanCommandRepository.SaveChanges(cancellationToken);
        }