public Task <int> Handle(RemoveSituacaoProcedimentoCommand request, CancellationToken cancellationToken)
        {
            if (!request.IsValid())
            {
                NotifyValidationErrors(request);
                return(Task.FromResult(0));
            }

            var situacaoProcedimento = _situacaoProcedimentoRepository.GetById(request.Id);

            if (situacaoProcedimento == null)
            {
                Bus.RaiseEvent(new DomainNotification(request.MessageType, "A situação atual não foi encontrada."));
                return(Task.FromResult(0));
            }

            _situacaoProcedimentoRepository.Remove(situacaoProcedimento.Id);

            if (Commit())
            {
                // TO DO
            }

            return(Task.FromResult(request.Id));
        }
        public Task <int> Handle(RemoveProcedimentoCommand request, CancellationToken cancellationToken)
        {
            if (!request.IsValid())
            {
                NotifyValidationErrors(request);
                return(Task.FromResult(0));
            }

            var procedimento = _procedimentoRepository.GetById(request.Id);

            if (procedimento == null)
            {
                Bus.RaiseEvent(new DomainNotification(request.MessageType, "O procedimento não foi encontrado."));
                return(Task.FromResult(0));
            }

            _vitimaRepository.Remove(x => x.ProcedimentoId == request.Id);
            _indiciadoRepository.Remove(x => x.ProcedimentoId == request.Id);
            _movimentacaoRepository.Remove(x => x.ProcedimentoId == request.Id);
            _objetoApreendidoRepository.Remove(x => x.ProcedimentoId == request.Id);
            _situacaoProcedimentoRepository.Remove(x => x.ProcedimentoId == request.Id);

            _procedimentoRepository.Remove(request.Id);

            if (Commit())
            {
                // TO DO: Raise Event
            }

            return(Task.FromResult(request.Id));
        }