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