Ejemplo n.º 1
0
        public Task <int> Handle(UpdateIndiciadoCommand request, CancellationToken cancellationToken)
        {
            if (!request.IsValid())
            {
                NotifyValidationErrors(request);
                return(Task.FromResult(0));
            }

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

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

            Municipio municipio = null;

            if (request.MunicipioId.HasValue)
            {
                municipio = _municipioRepository.GetById(request.MunicipioId.Value);

                if (request.MunicipioId > 0 && municipio == null)
                {
                    Bus.RaiseEvent(new DomainNotification(request.MessageType, "O Município não foi encontrado."));
                    return(Task.FromResult(0));
                }
            }

            var indiciado         = new Indiciado(request.Id, request.Apelido, procedimento, request.Nome, request.NomePai, request.NomeMae, request.DataNascimento, request.Telefone, municipio);
            var existingIndiciado = _indiciadoRepository.GetAsNoTracking(x => x.Nome.Contains(request.Nome) &&
                                                                         x.ProcedimentoId == request.ProcedimentoId &&
                                                                         x.Id != request.Id);

            if (existingIndiciado != null)
            {
                Bus.RaiseEvent(new DomainNotification(request.MessageType, "O Indiciado já está sendo usado."));
                return(Task.FromResult(0));
            }

            _indiciadoRepository.Update(indiciado);

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

            return(Task.FromResult(indiciado.Id));
        }
Ejemplo n.º 2
0
        public Task <int> Handle(RegisterNewIndiciadoCommand request, CancellationToken cancellationToken)
        {
            if (!request.IsValid())
            {
                NotifyValidationErrors(request);
                return(Task.FromResult(0));
            }

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

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

            Municipio municipio = null;

            if (request.MunicipioId.HasValue)
            {
                municipio = _municipioRepository.GetById(request.MunicipioId.Value);

                if (request.MunicipioId > 0 && municipio == null)
                {
                    Bus.RaiseEvent(new DomainNotification(request.MessageType, "O Município não foi encontrado."));
                    return(Task.FromResult(0));
                }
            }

            if (_indiciadoRepository.Exists(request.Nome, request.ProcedimentoId))
            {
                Bus.RaiseEvent(new DomainNotification(request.MessageType, "A Indiciado já está sendo usada."));
                return(Task.FromResult(0));
            }

            var indiciado = new Indiciado(request.Apelido, procedimento, request.Nome, request.NomePai, request.NomeMae, request.DataNascimento, request.Telefone, municipio);

            _indiciadoRepository.Add(indiciado);

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

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