コード例 #1
0
    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);
    }