private BSMonitoramento InternalExecuteProcedure(SituacaoMonitoramento SituacaoSolicitada, bool concatenarOcorrencias, string ocorrencia) { using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew)) { using (var session = SessionHelper.SessionFactory.OpenSession()) { var procedureInvoker = new ProcedureInvoker(session); var bsMonitoramento = BSMonitoramento.Executar(procedureInvoker, logger, (long?)SituacaoSolicitada, HandleRegistro, Descricao, UsuarioExecucao, HostExecucao, ProgressoAtual, ProgressoMaximo, HostAbortar, UsuarioAbortar, MensagemAtual, ocorrencia, HandleRotina, TabelaRotina, LocalChamada, ArquivoLogs, "-", concatenarOcorrencias ? 1 : 0, ChaveCorrelacao, HandleProcessoPai, BooleanHelper.getBuilderBooleanToString(ProgressoAutomatico), BooleanHelper.getBuilderBooleanToString(GerouCriticas)); scope.Complete(); return(bsMonitoramento); } } }
private SituacaoMonitoramento CallProcedure(SituacaoMonitoramento SituacaoSolicitada) { BSMonitoramento resultado = new BSMonitoramento(); string ocorrenciasGravar = OcorrenciaFinal ?? String.Empty; var concatenarOcorrencias = false; if (!String.IsNullOrEmpty(OcorrenciaConcatenar)) { concatenarOcorrencias = true; ocorrenciasGravar = OcorrenciaConcatenar; OcorrenciaConcatenar = String.Empty; } var splitOcorrencias = ocorrenciasGravar.Split(3950); if (splitOcorrencias.Count > 0) { foreach (string ocorrencia in splitOcorrencias) { resultado = InternalExecuteProcedure(SituacaoSolicitada, concatenarOcorrencias, ocorrencia); concatenarOcorrencias = true; } } else { resultado = InternalExecuteProcedure(SituacaoSolicitada, concatenarOcorrencias, string.Empty); } if (SituacaoSolicitada == SituacaoMonitoramento.Iniciada) { HandleRegistro = resultado.Handle ?? 0; } return(String.IsNullOrEmpty(resultado.Situacao) ? SituacaoMonitoramento.Nenhuma : (SituacaoMonitoramento)Int32.Parse(resultado.Situacao)); }