예제 #1
0
        public Task <int> Handle(RemoveIndiciadoCommand request, CancellationToken cancellationToken)
        {
            if (!request.IsValid())
            {
                NotifyValidationErrors(request);
                return(Task.FromResult(0));
            }

            var indiciado = _indiciadoRepository.GetById(request.Id);

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

            _indiciadoRepository.Remove(indiciado.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));
        }