private string Grabar(string strDatosBasicos, string strFiguras, string strNodos, string sInvActual) { string sResul = "", sIdUser; int nID = -1; string[] aDatosBasicos = null; #region abrir conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(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 { #region Datos Generales if (strDatosBasicos != "")//No se ha modificado nada de la pestaña general { aDatosBasicos = Regex.Split(strDatosBasicos, "##"); ///aDatosBasicos[0] = IDResponsable ///aDatosBasicos[1] = NoAlertas ///aDatosBasicos[2] = cualificacionCVT ///aDatosBasicos[3] = prov_gest ///aDatosBasicos[4] = prov_fiscal ///aDatosBasicos[5] = cod_segmento /// nID = int.Parse(aDatosBasicos[0]); CLIENTE.Update(tr, int.Parse(hdnID.Text), (aDatosBasicos[0] == "0") ? null : (int?)int.Parse(aDatosBasicos[0]), (aDatosBasicos[1] == "1") ? true : false, (aDatosBasicos[2] == "1") ? true : false, (aDatosBasicos[3] == "") ? null : (int?)int.Parse(aDatosBasicos[3]), (aDatosBasicos[4] == "") ? null : (int?)int.Parse(aDatosBasicos[4]), int.Parse(aDatosBasicos[5]) ); } #endregion #region Datos Figuras if (strFiguras != "")//No se ha modificado nada de la pestaña de Figuras { string[] aUsuarios = Regex.Split(strFiguras, "///"); foreach (string oUsuario in aUsuarios) { if (oUsuario == "") { continue; } string[] aFig = Regex.Split(oUsuario, "##"); ///aFig[0] = bd ///aFig[1] = idUsuario ///aFig[2] = Figuras if (aFig[0] == "D") { FIGURACLIENTE.Delete(tr, int.Parse(hdnID.Text), int.Parse(aFig[1])); } else { string[] aFiguras = Regex.Split(aFig[2], ","); foreach (string oFigura in aFiguras) { if (oFigura == "") { continue; } string[] aFig2 = Regex.Split(oFigura, "@"); ///aFig2[0] = bd ///aFig2[1] = Figura if (aFig2[0] == "D") { FIGURACLIENTE.Delete(tr, int.Parse(hdnID.Text), int.Parse(aFig[1])); } else { FIGURACLIENTE.Insert(tr, int.Parse(hdnID.Text), int.Parse(aFig[1]), aFig2[1]); } } } } } #endregion #region Datos Nodos de invitados if (strNodos != "")//No se ha modificado nada de la pestaña de nodos { string[] aElems = Regex.Split(strNodos, "/"); foreach (string oElem in aElems) { if (oElem == "") { continue; } string[] aElem = Regex.Split(oElem, "#"); ///aElem[0] = bd ///aElem[1] = idUsuario ///aElem[2] = idNodo sIdUser = aElem[1]; if (sIdUser != "") { if (aElem[0] == "D") { RESTRICCIONNODOFIGURACLIENTE.Delete(tr, int.Parse(hdnID.Text), int.Parse(sIdUser), int.Parse(aElem[2])); } else { RESTRICCIONNODOFIGURACLIENTE.Insert(tr, int.Parse(hdnID.Text), int.Parse(sIdUser), int.Parse(aElem[2])); } } } } #endregion Conexion.CommitTransaccion(tr); //sResul = "OK@#@" + nID.ToString("#,###"); sResul = obtenerInvitados("1", hdnID.Text) + "@#@" + ObtenerNodosInvitados(hdnID.Text) + "@#@" + sInvActual; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos del cliente", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }