Exemple #1
0
    protected string Grabar(string sCodAviso, string strDatosBasicos, string strDatosRecursos)
    {
        string   sResul = "", sOpcionBD, sDesc, sTitulo, sDescLong;
        bool     bIAP = false, bPGE = false, bPST = false;
        int      iCodAviso, iCodRecurso;
        DateTime?dIniV = null;
        DateTime?dFinV = 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
        {
            if (sCodAviso == "0")
            {
                iCodAviso = -1;
            }
            else
            {
                iCodAviso = int.Parse(sCodAviso);
            }
            #region Datos generales
            if (strDatosBasicos != "")//No se ha modificado nada de la pestaña general
            {
                string[] aDatosTarea = Regex.Split(strDatosBasicos, "##");
                ///aDatosTarea[0] = Denominacion aviso
                ///aDatosTarea[1] = Titulo aviso
                ///aDatosTarea[2] = Texto libre
                ///aDatosTarea[3] = chkIAP
                ///aDatosTarea[4] = chkPGE
                ///aDatosTarea[5] = chkPST
                ///aDatosTarea[6] = txtValIni
                ///aDatosTarea[7] = txtValFin
                sDesc     = Utilidades.unescape(aDatosTarea[0]);
                sTitulo   = Utilidades.unescape(aDatosTarea[1]);
                sDescLong = Utilidades.unescape(aDatosTarea[2]);
                if (aDatosTarea[3] == "1")
                {
                    bIAP = true;
                }
                if (aDatosTarea[4] == "1")
                {
                    bPGE = true;
                }
                if (aDatosTarea[5] == "1")
                {
                    bPST = true;
                }
                if (aDatosTarea[6] != "")
                {
                    dIniV = DateTime.Parse(aDatosTarea[6]);
                }
                if (aDatosTarea[7] != "")
                {
                    dFinV = DateTime.Parse(aDatosTarea[7]);
                }

                if (iCodAviso <= 0)
                {
                    iCodAviso = TEXTOAVISOS.Insert(tr, sDesc, sTitulo, sDescLong, bIAP, bPGE, bPST, dIniV, dFinV);
                }
                else
                {
                    TEXTOAVISOS.Update(tr, iCodAviso, sDesc, sTitulo, sDescLong, bIAP, bPGE, bPST, dIniV, dFinV);
                }
            }
            #endregion
            #region Recursos
            if (strDatosRecursos != "")
            {
                string[] aRecursos = Regex.Split(strDatosRecursos, "///");

                foreach (string oRec in aRecursos)
                {
                    string[] aValores = Regex.Split(oRec, "##");
                    ///aValores[0] = opcionBD;
                    ///aValores[1] = idRecurso;
                    if (aValores[0] != "")
                    {
                        sOpcionBD   = aValores[0];
                        iCodRecurso = int.Parse(aValores[1]);
                        if (iCodRecurso == -1)
                        {                         //Queremos operar sobre todos los profesionales
                            USUARIOAVISOS.BorrarTodos(tr, iCodAviso);
                            if (sOpcionBD == "I") //Queremos asignar el aviso a todos los profesionales
                            {
                                USUARIOAVISOS.InsertarTodos(tr, iCodAviso);
                            }
                            break;
                        }
                        switch (sOpcionBD)
                        {
                        case "I":
                            USUARIOAVISOS.Insert(tr, iCodAviso, iCodRecurso);
                            break;

                        case "D":
                            USUARIOAVISOS.Delete(tr, iCodAviso, iCodRecurso);
                            break;
                        }
                    }
                }
            }
            #endregion

            Conexion.CommitTransaccion(tr);
            sResul = "OK@#@" + DateTime.Now.ToString() + "@#@" + Session["UsuarioActual"].ToString() + "@#@" +
                     Session["APELLIDO1"].ToString() + " " + Session["APELLIDO2"].ToString() + ", " + Session["NOMBRE"].ToString() + "@#@" +
                     iCodAviso.ToString();
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos del aviso", ex);
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }
        return(sResul);
    }