示例#1
0
    protected string Grabar(string strDatos)
    {
        string sResul = "", sDesc = "", sElementosInsertados = "";
        int    nAux = 0;

        #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
        {
            string[] aCategoria = Regex.Split(strDatos, "///");
            foreach (string oCategoria in aCategoria)
            {
                if (oCategoria == "")
                {
                    continue;
                }
                string[] aValores = Regex.Split(oCategoria, "##");
                //0. Opcion BD. "I", "U", "D"
                //1. ID Categoría
                //2. Descripcion
                //3. Hora
                //4. Jornada

                switch (aValores[0])
                {
                case "I":
                    nAux = CATEGSUPER.Insert(tr, Utilidades.unescape(aValores[2]), decimal.Parse(aValores[3]), decimal.Parse(aValores[4]));
                    if (sElementosInsertados == "")
                    {
                        sElementosInsertados = nAux.ToString();
                    }
                    else
                    {
                        sElementosInsertados += "//" + nAux.ToString();
                    }
                    break;

                case "U":
                    CATEGSUPER.Update(tr, int.Parse(aValores[1]), Utilidades.unescape(aValores[2]), decimal.Parse(aValores[3]), decimal.Parse(aValores[4]));
                    break;

                case "D":
                    CATEGSUPER.Delete(tr, int.Parse(aValores[1]));
                    break;
                }
            }
            Conexion.CommitTransaccion(tr);

            sResul = "OK@#@" + sElementosInsertados;
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            sResul = "Error@#@" + Errores.mostrarError("Error al grabar las tarifas.", ex, false) + "@#@" + sDesc;
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }

        return(sResul);
    }