private int EvaluarIn(Regla r, string[] text, int x, int exitoLinea) { string[] inString; int j; inString = r.ReglaValidacion.Split(','); var existe = 0; for (j = 0; j <= inString.Count() - 1; j++) { if (text[x].Trim().Substring(r.CaracterInicial - 1, r.LargoCampo) == inString[j]) { existe = 1; } } if (existe == 1) { exitoLinea = 1; } else { Errores = Errores + 1; } return exitoLinea; }
private int EvaluarInQuery(Regla r, int exitoLinea) { StringCollection resultadoValor; resultadoValor = ExecQuery(r.ReglaValidacion); if (resultadoValor.Contains(CampoActual)) { exitoLinea = 1; } else { Errors = "No existe: " + CampoActual; Errores = Errores + 1; } return exitoLinea; }
private int EvaluarFiller(Regla r, int exitoLinea) { if (CampoActual == "".PadLeft(r.LargoCampo)) { exitoLinea = 1; } else { Errores = Errores + 1; } return exitoLinea; }
private int EvaluarEqual(Regla r, int exitoLinea) { if (CampoActual == r.ReglaValidacion) { exitoLinea = 1; } else { Errores = Errores + 1; } return exitoLinea; }
private int EvaluarBoolSp(string tipoArchivo, Regla r, int x, int exitoLinea) { string valor; StringCollection resultadoValor; 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()); using (var context = new DISEntities()) { var resultado = context.pa_valida_EjecutaProcedimientoAlmacenado(valor); resultadoValor = ObtieneColeccion(resultado); } if (resultadoValor[0] == "1") { exitoLinea = 1; //start: //1.- valida que exista una PRIMAPAG if (tipoArchivo == "PRIMDCUA") { if (r.Tabladestino != string.Empty) { valor = r.Tabladestino; valor = valor.Replace("@valor", "'" + CampoActual + "'"); using (var context = new DISEntities()) { ObjectResult resultado = context.pa_valida_EjecutaProcedimientoAlmacenado(valor); resultadoValor = ObtieneColeccion(resultado); } if (resultadoValor[0] == "1") { exitoLinea = 1; // } else { Errores = Errores + 1; exitoLinea = 0; } } } //end } else { Errores = Errores + 1; exitoLinea = 0; } return exitoLinea; }
private int EvaluarBoolIfSp(Regla r, int x, int exitoLinea) { 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 { Errores = Errores + 1; } } else { if (res1 == 1 | res2 == 1) { exitoLinea = 1; } else { Errores = Errores + 1; } } break; case "IF": switch (conditionString[1].Substring(0, 3)) { case "SP#": if (ExecSpBool(conditionString[1].Substring(3))) { switch (conditionString[2].Substring(0, 3)) { case "SP#": if (ExecSpBool(conditionString[2].Substring(3))) { exitoLinea = 1; } else { Errores = Errores + 1; } break; //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP SP#", ConditionString[2].Substring(3), Me.idArchivo) case "EQ#": if ( CampoActual.Equals( conditionString[2].Substring(3))) { exitoLinea = 1; } else { Errores = Errores + 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)) { exitoLinea = 1; } else { Errores = Errores + 1; } break; //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP IQ#", Me.campoActual + "IN(" + ConditionString[2].Substring(3) + ")", Me.idArchivo) case "IN#": inString = conditionString[2].Substring(3) .Split(','); for (j = 0; j <= inString.Count() - 1; j++) { if (CampoActual == inString[j]) { exitoLinea = 1; break; // TODO: might not be correct. Was : Exit For } } if (exitoLinea == 0) { Errores = Errores + 1; } break; //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP IN#", Me.campoActual + "IN(" + ConditionString[2].Substring(3) + ")", Me.idArchivo) } } else { switch (conditionString[3].Substring(0, 3)) { case "SP#": if (ExecSpBool(conditionString[3].Substring(3))) { exitoLinea = 1; } else { Errores = Errores + 1; } break; //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP SP#", ConditionString[2].Substring(3), Me.idArchivo) case "EQ#": if (CampoActual == conditionString[3].Substring(3)) { exitoLinea = 1; } else { Errores = Errores + 1; } break; //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP EQ#", Me.campoActual + "=" + ConditionString[2].Substring(3), Me.idArchivo) case "IQ#": resultadoValor = ExecQuery(conditionString[3].Substring(3)); if (resultadoValor.Contains(CampoActual)) { exitoLinea = 1; } else { Errores = Errores + 1; } break; //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP IQ#", Me.campoActual + "IN(" + ConditionString[2].Substring(3) + ")", Me.idArchivo) case "IN#": inString = conditionString[3].Substring(3) .Split(','); for (j = 0; j <= inString.Count() - 1; j++) { if (CampoActual == inString[j]) { exitoLinea = 1; break; // TODO: might not be correct. Was : Exit For } } if (exitoLinea == 0) { Errores = Errores + 1; } break; //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP IN#", Me.campoActual + "IN(" + ConditionString[2].Substring(3) + ")", Me.idArchivo) } } break; case "EQ#": if (CampoActual.Equals(conditionString[2].Substring(3))) { exitoLinea = 1; } else { Errores = Errores + 1; } break; //InsertaAuditoria(Me.UsuarioModificacion, "BOOL_IF_SP EQ#", Me.campoActual + "=" + ConditionString[2].Substring(3), Me.idArchivo) } break; } return exitoLinea; }
public List<Regla> ObtieneReglaLinea(ObjectResult<pa_file_ObtieneReglasArchivoPorLinea_Result> dt) { var reglaLinea = new List<Regla>(); foreach (var iLoopVariable in dt) { var i = iLoopVariable; var regla = new Regla { idRegla = i.IdReglaArchivo, CaracterInicial = i.CaracterInicial.Value, LargoCampo = i.LargoCampo.Value, TipoCampo = i.TipoCampo, TipoValidacion = i.TipoValidacion, ReglaValidacion = i.ReglaValidacion, Tabladestino = i.TablaDestino }; reglaLinea.Add(regla); } return reglaLinea; }