public Task <int> Handle(UpdateVaraCriminalCommand request, CancellationToken cancellationToken) { if (!request.IsValid()) { NotifyValidationErrors(request); return(Task.FromResult(0)); } var varaCriminal = new VaraCriminal(request.Id, request.Descricao); var existingVaraCriminal = _varaCriminalRepository.GetAsNoTracking(x => varaCriminal.Descricao.Contains(x.Descricao)); if (!existingVaraCriminal.Equals(varaCriminal)) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "A Vara Criminal já está sendo usada.")); return(Task.FromResult(0)); } _varaCriminalRepository.Update(varaCriminal); if (Commit()) { //TO DO } return(Task.FromResult(varaCriminal.Id)); }
public Task <int> Handle(RegisterNewVaraCriminalCommand request, CancellationToken cancellationToken) { if (!request.IsValid()) { NotifyValidationErrors(request); return(Task.FromResult(0)); } var varaCriminal = new VaraCriminal(request.Descricao); if (_varaCriminalRepository.Exists(varaCriminal.Descricao)) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "A Vara Criminal já está sendo usada.")); return(Task.FromResult(0)); } _varaCriminalRepository.Add(varaCriminal); if (Commit()) { // TO DO } return(Task.FromResult(varaCriminal.Id)); }
public Task <int> Handle(RegisterNewProcedimentoCommand request, CancellationToken cancellationToken) { if (!request.IsValid()) { NotifyValidationErrors(request); return(Task.FromResult(0)); } if (!string.IsNullOrEmpty(request.NumeroProcessual)) { if (_procedimentoRepository.Exists(request.NumeroProcessual)) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "O Número Processual já está sendo usado.")); return(Task.FromResult(0)); } } ProcedimentoTipo tipoProcedimento = null; if (request.TipoProcedimentoId.HasValue) { tipoProcedimento = _procedimentoTipoRepository.GetById(request.TipoProcedimentoId.Value); if (tipoProcedimento == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "O Tipo de Procedimento não foi encontrado.")); return(Task.FromResult(0)); } } Artigo artigo = null; if (request.ArtigoId.HasValue) { artigo = _artigoRepository.GetById(request.ArtigoId.Value); if (artigo == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "O Artigo não foi encontrado.")); return(Task.FromResult(0)); } } Assunto assunto = null; if (request.AssuntoId.HasValue) { assunto = _assuntoRepository.GetById(request.AssuntoId.Value); if (assunto == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "O Assunto não foi encontrado.")); return(Task.FromResult(0)); } } Municipio municipio = null; if (request.ComarcaId.HasValue) { municipio = _municipioRepository.GetById(request.ComarcaId.Value); if (municipio == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "A Comarca não foi encontrada.")); return(Task.FromResult(0)); } } VaraCriminal varaCriminal = null; if (request.VaraCriminalId.HasValue) { varaCriminal = _varaCriminalRepository.GetById(request.VaraCriminalId.Value); if (varaCriminal == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "A Vara Criminal não foi encontrada.")); return(Task.FromResult(0)); } } UnidadePolicial unidadePolicial = null; if (request.DelegaciaOrigemId.HasValue) { unidadePolicial = _unidadePolicialRepository.GetById(request.DelegaciaOrigemId.Value); if (unidadePolicial == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "A Delegacia de Origem não foi encontrada.")); return(Task.FromResult(0)); } } var situacao = _situacaoRepository.GetById(1); var procedimento = new Procedimento(request.BoletimUnificado, request.BoletimOcorrencia, request.NumeroProcessual, request.Gampes, request.Anexos, request.LocalFato, request.DataFato, request.DataInstauracao, request.AndamentoProcessual, tipoProcedimento, varaCriminal, municipio, assunto, artigo, unidadePolicial, situacao); _procedimentoRepository.Add(procedimento); var situacaoProcedimento = new SituacaoProcedimento(procedimento, situacao); _situacaoProcedimentoRepository.Add(situacaoProcedimento); if (request.Movimentacoes != null) { var movimentacoes = request.Movimentacoes.Select(m => new Movimentacao(m.Destino, m.Data, procedimento)); _movimentacaoRepository.AddRange(movimentacoes); } if (Commit()) { // TO DO: Raise Event } return(Task.FromResult(procedimento.Id)); }
public Task <int> Handle(UpdateProcedimentoCommand request, CancellationToken cancellationToken) { if (!request.IsValid()) { NotifyValidationErrors(request); return(Task.FromResult(0)); } ProcedimentoTipo tipoProcedimento = null; if (request.TipoProcedimentoId.HasValue) { tipoProcedimento = _procedimentoTipoRepository.GetById(request.TipoProcedimentoId.Value); if (tipoProcedimento == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "O Tipo de Procedimento não foi encontrado.")); return(Task.FromResult(0)); } } Artigo artigo = null; if (request.ArtigoId.HasValue) { artigo = _artigoRepository.GetById(request.ArtigoId.Value); if (artigo == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "O Artigo não foi encontrado.")); return(Task.FromResult(0)); } } Assunto assunto = null; if (request.AssuntoId.HasValue) { assunto = _assuntoRepository.GetById(request.AssuntoId.Value); if (assunto == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "O Assunto não foi encontrado.")); return(Task.FromResult(0)); } } Municipio municipio = null; if (request.ComarcaId.HasValue) { municipio = _municipioRepository.GetById(request.ComarcaId.Value); if (municipio == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "A Comarca não foi encontrada.")); return(Task.FromResult(0)); } } VaraCriminal varaCriminal = null; if (request.VaraCriminalId.HasValue) { varaCriminal = _varaCriminalRepository.GetById(request.VaraCriminalId.Value); if (varaCriminal == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "A Vara Criminal não foi encontrada.")); return(Task.FromResult(0)); } } UnidadePolicial unidadePolicial = null; if (request.DelegaciaOrigemId.HasValue) { unidadePolicial = _unidadePolicialRepository.GetById(request.DelegaciaOrigemId.Value); if (unidadePolicial == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "A Delegacia de Origem não foi encontrada.")); return(Task.FromResult(0)); } } Procedimento existingProcedimento = null; if (!string.IsNullOrEmpty(request.NumeroProcessual)) { existingProcedimento = _procedimentoRepository.GetAsNoTracking(x => x.NumeroProcessual.Contains(request.NumeroProcessual) && x.Id != request.Id); } if (existingProcedimento != null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "O número processual já está sendo usado.")); return(Task.FromResult(0)); } existingProcedimento = _procedimentoRepository.GetAsNoTracking(x => x.Id == request.Id); if (existingProcedimento == null) { Bus.RaiseEvent(new DomainNotification(request.MessageType, "O procedimento não foi encontrado.")); return(Task.FromResult(0)); } var situacaoAtual = _situacaoRepository.GetById(existingProcedimento.SituacaoAtualId); var procedimento = new Procedimento(request.Id, request.BoletimUnificado, request.BoletimOcorrencia, request.NumeroProcessual, request.Gampes, request.Anexos, request.LocalFato, request.DataFato, request.DataInstauracao, request.AndamentoProcessual, tipoProcedimento, varaCriminal, municipio, assunto, artigo, unidadePolicial, situacaoAtual); _procedimentoRepository.Update(procedimento); if (Commit()) { // TO DO: Raise Event } return(Task.FromResult(procedimento.Id)); }