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