protected string EliminarAE(string strIDAE) { string sResul = ""; #region abrir conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); } catch (Exception ex) { if (oConn.State == ConnectionState.Open) { Conexion.Cerrar(oConn); } sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion try { string[] aAE = Regex.Split(strIDAE, "##"); foreach (string oAE in aAE) { //AE.Delete(tr, int.Parse(oAE)); CEC.Delete(tr, int.Parse(oAE)); } Conexion.CommitTransaccion(tr); sResul = "OK@#@"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al eliminar los criterios estadísticos", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }
protected string Grabar(string strDatos, string strDatosVAE, string sCEC, string sVCEC, string strNodos) { string sResul = "", sNuevosAEs = "", sNuevosVAEs = "", sTablaAct = "T341"; bool bEstado; int idAE, idVAE, idNodo; string[] aKeysAE; string[] aKeysVAE; #region conexion try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion try { #region AE int idNuevoAE; string[] aAE = Regex.Split(strDatos, "///"); foreach (string oAE in aAE) { if (oAE == "") { continue; } string[] aValores = Regex.Split(oAE, "##"); //0. Opcion BD. "I", "U", "D" //1. ID AE //2. Denominación //3. Estado //4. Orden bEstado = false; if (aValores[3] == "1") { bEstado = true; } switch (aValores[0]) { case "D": CEC.Delete(tr, int.Parse(aValores[1])); break; case "I": idNuevoAE = CEC.Insert(tr, Utilidades.unescape(aValores[2]), bEstado, int.Parse(aValores[4])); sNuevosAEs += aValores[1] + "##" + idNuevoAE.ToString() + "@@"; break; case "U": CEC.Update(tr, int.Parse(aValores[1]), Utilidades.unescape(aValores[2]), bEstado, int.Parse(aValores[4])); break; } } #endregion aKeysAE = Regex.Split(sNuevosAEs, "@@"); sTablaAct = "T340"; #region VAE int idNuevoVAE; string[] aVAE = Regex.Split(strDatosVAE, "///"); foreach (string oVAE in aVAE) { if (oVAE == "") { break; } string[] aValoresVAE = Regex.Split(oVAE, "##"); ///aValoresVAE[0] = opcionBD; ///aValoresVAE[1] = idAE; ///aValoresVAE[2] = idVAE; ///aValoresVAE[3] = Valor; ///aValoresVAE[4] = Orden; ///aValoresVAE[5] = Activo; idAE = int.Parse(aValoresVAE[1]); if (idAE < 0) { idAE = flBuscarKeyAE(aValoresVAE[1], aKeysAE); } bool bEstadoVAE = false; if (aValoresVAE[5] == "1") { bEstadoVAE = true; } switch (aValoresVAE[0]) { case "I": idNuevoVAE = VCEC.Insert(tr, Utilidades.unescape(aValoresVAE[3]), bEstadoVAE, idAE, byte.Parse(aValoresVAE[4])); sNuevosVAEs += aValoresVAE[2] + "##" + idNuevoVAE.ToString() + "@@"; break; case "U": VCEC.Update(tr, int.Parse(aValoresVAE[2]), Utilidades.unescape(aValoresVAE[3]), bEstadoVAE, idAE, byte.Parse(aValoresVAE[4])); break; case "D": VCEC.Delete(tr, int.Parse(aValoresVAE[2])); break; } } #endregion aKeysVAE = Regex.Split(sNuevosVAEs, "@@"); sTablaAct = "T345"; #region CEC string[] aCEC = Regex.Split(sCEC, "///"); foreach (string oCEC in aCEC) { if (oCEC != "") { string[] aValores = Regex.Split(oCEC, "##"); //0. Opcion BD. "I", "U", "D" //1. ID AE //2. Obligatorio //3. Nodo idAE = int.Parse(aValores[1]); if (idAE < 0) { idAE = flBuscarKeyAE(aValores[1], aKeysAE); } bEstado = false; if (aValores[2] == "1") { bEstado = true; } switch (aValores[0]) { case "D": CECNODO.Delete(tr, idAE, int.Parse(aValores[3])); break; case "I": if (CECNODO.Existe(tr, idAE, int.Parse(aValores[3]))) { CECNODO.Update(tr, idAE, int.Parse(aValores[3]), bEstado); } else { CECNODO.Insert(tr, idAE, int.Parse(aValores[3]), bEstado); } break; case "U": CECNODO.Update(tr, idAE, int.Parse(aValores[3]), bEstado); break; } } } #endregion sTablaAct = "T435"; #region VCEC string[] aNodo = Regex.Split(strNodos, "///"); string[] aVAENodo = Regex.Split(sVCEC, "///"); foreach (string oNodo in aNodo) { if (oNodo == "") { break; } idNodo = int.Parse(oNodo); foreach (string oVAENodo in aVAENodo) { if (oVAENodo == "") { break; } string[] aValoresVAENodo = Regex.Split(oVAENodo, "##"); ///aValoresVAENodo[0] = opcionBD; ///aValoresVAENodo[1] = idAE; ///aValoresVAENodo[2] = idVAE; idAE = int.Parse(aValoresVAENodo[1]); if (idAE < 0) { idAE = flBuscarKeyAE(aValoresVAENodo[1], aKeysAE); } idVAE = int.Parse(aValoresVAENodo[2]); if (idVAE < 0) { idVAE = flBuscarKeyAE(aValoresVAENodo[2], aKeysVAE); } switch (aValoresVAENodo[0]) { case "I": case "U": if (!CECRESTRICCION.Existe(tr, idAE, idNodo, idVAE)) { CECRESTRICCION.Insert(tr, idAE, idNodo, idVAE); } break; case "D": CECRESTRICCION.Delete(tr, idAE, idNodo, idVAE); break; } } } #endregion Conexion.CommitTransaccion(tr); sResul = "OK@#@" + sNuevosAEs + "@#@" + sNuevosVAEs; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar los criterios estadísticos.", ex) + "@#@" + sTablaAct; } finally { Conexion.Cerrar(oConn); } return(sResul); }