private int evaluarPasoPasoTrue(string[] conditionString)
        {
            var exitoLineaLT = 0;
            StringCollection resultQuery;

            string[] inStringValue;
            switch (conditionString[2].Substring(0, 3))
            {
            case "SP#":
                if (ExecSpBool(conditionString[2].Substring(3)))
                {
                    exitoLineaLT = 1;
                }
                break;

            //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP SP#", ConditionString[2].Substring(3), Me.idArchivo)
            case "EQ#":
                if (CampoActual.Equals(conditionString[2].Substring(3)))
                {
                    exitoLineaLT = 1;
                }
                break;

            //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP EQ#", Me.campoActual + "=" + ConditionString[2].Substring(3), Me.idArchivo)
            case "IQ#":
                resultQuery = ExecQuery(conditionString[2].Substring(3));
                if (resultQuery.Contains(CampoActual))
                {
                    exitoLineaLT = 1;
                }
                break;

            //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP IQ#", Me.campoActual + "IN(" + ConditionString[2].Substring(3) + ")", Me.idArchivo)
            case "IN#":
                inStringValue = conditionString[2].Substring(3).Split(',');
                for (var j = 0; j <= inStringValue.Count() - 1; j++)
                {
                    if (CampoActual == inStringValue[j])
                    {
                        exitoLineaLT = 1;
                        break;
                    }
                }
                break;
            }
            return(exitoLineaLT);
        }
        private int EvaluarBoolIfSp(Regla r, int x, int exitoLinea, string[] text)
        {
            string           valor;
            int              res1;
            int              res2;
            StringCollection resultadoValor;

            string[] inString;
            int      j;

            string[] conditionString = null;
            valor           = r.ReglaValidacion;
            valor           = valor.Replace("@valor", "'" + CampoActual + "'");
            valor           = valor.Replace("@IdArchivo", IdArchivo.ToString());
            valor           = valor.Replace("@NumeroLinea", (x + 1).ToString());
            valor           = valor.Replace("@CampoInicial", r.CaracterInicial.ToString());
            valor           = valor.Replace("@LargoCampo", r.LargoCampo.ToString());
            conditionString = valor.Split(';');

            //InsertaAuditoria(Me.UsuarioModificacion, "Validación BOOL_IF_SP", valor, Me.idArchivo)

            switch (conditionString[0])
            {
            case "AND":
            case "OR":
                res1 = 0;
                res2 = 0;
                switch (conditionString[1].Substring(0, 3))
                {
                case "SP#":
                    if (ExecSpBool(conditionString[1].Substring(3)))
                    {
                        res1 = 1;
                    }
                    break;

                //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP SP#", ConditionString[1].Substring(3), Me.idArchivo)
                case "EQ#":
                    if (CampoActual == conditionString[1].Substring(3))
                    {
                        res1 = 1;
                    }
                    break;

                //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP EQ#", Me.campoActual + "=" + ConditionString[1].Substring(3), Me.idArchivo)
                case "IQ#":
                    resultadoValor = ExecQuery(conditionString[1].Substring(3));
                    if (resultadoValor.Contains(CampoActual))
                    {
                        res1 = 1;
                    }
                    break;

                //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP IQ#", Me.campoActual + "IN(" + ConditionString[1].Substring(3) + ")", Me.idArchivo)
                case "IN#":
                    inString = conditionString[1].Substring(3).Split(',');
                    for (j = 0; j <= inString.Count() - 1; j++)
                    {
                        if (CampoActual == inString[j])
                        {
                            res1 = 1;
                            break;         // TODO: might not be correct. Was : Exit For
                        }
                    }

                    break;
                    //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP IN#", Me.campoActual + "IN(" + ConditionString[1].Substring(3) + ")", Me.idArchivo)
                }
                switch (conditionString[2].Substring(0, 3))
                {
                case "SP#":
                    if (ExecSpBool(conditionString[2].Substring(3)))
                    {
                        res2 = 1;
                    }
                    break;

                //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP SP#", ConditionString[2].Substring(3), Me.idArchivo)
                case "EQ#":
                    if (CampoActual == conditionString[2].Substring(3))
                    {
                        res2 = 1;
                    }
                    break;

                //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP EQ#", Me.campoActual + "=" + ConditionString[2].Substring(3), Me.idArchivo)
                case "IQ#":
                    resultadoValor = ExecQuery(conditionString[2].Substring(3));
                    if (resultadoValor.Contains(CampoActual))
                    {
                        res2 = 1;
                    }
                    break;

                //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP IQ#", Me.campoActual + "IN(" + ConditionString[2].Substring(3) + ")", Me.idArchivo)
                case "IN#":
                    inString = conditionString[1].Substring(3).Split(',');
                    for (j = 0; j <= inString.Count() - 1; j++)
                    {
                        if (CampoActual == inString[j])
                        {
                            res2 = 1;
                            break;         // TODO: might not be correct. Was : Exit For
                        }
                    }

                    break;
                    //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP IN#", Me.campoActual + "IN(" + ConditionString[2].Substring(3) + ")", Me.idArchivo)
                }

                if (conditionString[0] == "AND")
                {
                    if (res1 == 1 & res2 == 1)
                    {
                        exitoLinea = 1;
                    }
                    else
                    {
                        ContadorErrores = ContadorErrores + 1;
                    }
                }
                else
                {
                    if (res1 == 1 | res2 == 1)
                    {
                        exitoLinea = 1;
                    }
                    else
                    {
                        ContadorErrores = ContadorErrores + 1;
                    }
                }
                break;

            case "IF":
                switch (conditionString[1].Substring(0, 3))
                {
                case "LT#":
                    if (ExecSpBoolLT1(conditionString[1].Substring(3), x, text))
                    {
                        exitoLinea = 1;
                    }
                    else
                    {
                        exitoLinea      = evaluarPasoPasoFalse(conditionString) == 0 ? evaluarPasoPasoTrue(conditionString) : 1;
                        ContadorErrores = exitoLinea == 1 ? ContadorErrores: ContadorErrores + 1;
                    }
                    break;

                case "SP#":
                    if (ExecSpBool(conditionString[1].Substring(3)))
                    {
                        exitoLinea      = evaluarPasoPasoTrue(conditionString);
                        ContadorErrores = exitoLinea == 1 ? ContadorErrores : ContadorErrores + 1;
                    }
                    else
                    {
                        exitoLinea      = evaluarPasoPasoFalse(conditionString);
                        ContadorErrores = exitoLinea == 1 ? ContadorErrores : ContadorErrores + 1;
                    }
                    break;

                case "EQ#":
                    if (CampoActual.Equals(conditionString[2].Substring(3)))
                    {
                        exitoLinea = 1;
                    }
                    else
                    {
                        ContadorErrores = ContadorErrores + 1;
                    }
                    break;
                    //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP EQ#", Me.campoActual + "=" + ConditionString[2].Substring(3), Me.idArchivo)
                }
                break;
            }
            return(exitoLinea);
        }