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));
            }

            if (_situacaoProcedimentoRepository.Any(x => x.SituacaoId == situacaoProcedimento.SituacaoId || x.SituacaoTipoId == request.SituacaoTipoId))
            {
                Bus.RaiseEvent(new DomainNotification(request.MessageType, "Existem procedimentos associados a este Tipo de Situação."));
                return(Task.FromResult(0));
            }

            _situacaoProcedimentoRepository.Remove(situacaoProcedimento.Id);

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

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

            var existingTipoSituacao = _situacaoTipoRepository.GetById(request.Id);

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

            if (_situacaoProcedimentoRepository.Any(x => x.SituacaoTipoId == existingTipoSituacao.Id))
            {
                Bus.RaiseEvent(new DomainNotification(request.MessageType, "Existem procedimentos associados a este tipo. Por favor verifique-os antes de remover este tipo."));
                return(Task.FromResult(0));
            }

            _situacaoTipoRepository.Remove(existingTipoSituacao.Id);

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

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