public void Validate() { if (_passagemPendenteEdi.StatusPassagem.Equals(StatusPassagem.Evasao)) { var obterCountHistoricoListaNela = new ObterCountHistoricoListaNelaQuery(); var countHistoricoListaNela = obterCountHistoricoListaNela.Execute(_passagemPendenteEdi); var validarSaldoSuficiente = new PossuiSaldoSuficienteValidator(_passagemPendenteEdi); if (countHistoricoListaNela && !validarSaldoSuficiente.Validate()) { throw new EdiTransacaoException(CodigoRetornoTransacaoTRF.EvasaoParaAutuacao, _passagemPendenteEdi); } _passagemPendenteEdi.PossuiEvasaoAceita = true; } }
public void Validate() { var possuiTransacaoAprovadaManualmente = _validatorRuleSet.Validate(_passagemPendenteEdi, PassagemPendenteEdiValidatorEnum.PossuiTransacaoAprovadaManualmente.ToString()); var validarSaldoSuficiente = new PossuiSaldoSuficienteValidator(_passagemPendenteEdi); var possuiSaldoSuficiente = validarSaldoSuficiente.Validate(); if (!possuiTransacaoAprovadaManualmente || possuiSaldoSuficiente) { var obterhistoricoListaNela = new ObterHistoricoListaNelaQuery(); _historicoListaNela = obterhistoricoListaNela.Execute(new ObterHistoricoListaNelaFilter { TagId = _passagemPendenteEdi.Tag.Id ?? 0, DataDePassagem = _passagemPendenteEdi.DataPassagem }); if (_validatorRuleSet.Validate(_passagemPendenteEdi, PassagemPendenteEdiValidatorEnum.PossuiAdesaoAtiva.ToString())) { if (_historicoListaNela != null) { _tempoAtualizacaoPista = (_passagemPendenteEdi.Praca.TempoAtualizacaoPista > 0 ? _passagemPendenteEdi.Praca.TempoAtualizacaoPista : _conveniado?.TempoDeAtualizacaoDePista) ?? 0; if ( _passagemPendenteEdi.Adesao.Tag.StatusTag == StatusTag.Bloqueada && (!_passagemPendenteEdi.Adesao.Cliente.PessoaFisica || (_passagemPendenteEdi.Adesao.Cliente.PessoaFisica && _passagemPendenteEdi.Adesao.AdesaoValePedagio)) && (_historicoListaNela.DataEntrada.AddMinutes(_tempoAtualizacaoPista) <= _passagemPendenteEdi.DataPassagem)) { throw new EdiTransacaoException(CodigoRetornoTransacaoTRF.PassagemForaDoPeriodo, _passagemPendenteEdi); } VerificarSlaListaNela(possuiSaldoSuficiente); } } } }