public static string Grabar(string sGrupoFuncional, string sIntegrantes) { //En el primer parametro de entrada tenemos codGf#descGF //y en el segundo una lista de codigos de personas separados por comas (persona#responsable,) string sCad, sResul = "", sDesGP, sOperacion, sCodGP, sCodRed; bool bAlta = false; int iEmpleado, iPos; SqlConnection oConn = null; SqlTransaction tr = null; try { //Recojo el código de GF iPos = sGrupoFuncional.IndexOf("#"); sCodGP = sGrupoFuncional.Substring(0, iPos); sDesGP = Utilidades.unescape(sGrupoFuncional.Substring(iPos + 1)); //Abro transaccion oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(oConn); if (sCodGP != "") { GrupoProf.ModificarGrupo(null, sCodGP, sDesGP); } else { bAlta = true; sCodGP = GrupoProf.InsertarGrupo(null, sDesGP); HttpContext.Current.Session["nIdGrupo"] = sCodGP; GrupoProf.InsertarProfesional(tr, sCodGP, int.Parse(HttpContext.Current.Session["IDFICEPI_PC_ACTUAL"].ToString())); } ArrayList aListDestinatarios = new ArrayList(); //Borrar los integrantes existentes //GrupoFun.BorrarIntegrantes(tr,iCodGF); if (sIntegrantes == "") {//Tenemos lista vacía. No hacemos nada } else {//Con la cadena generamos una lista y la recorremos para grabar cada elemento string[] aTareas = Regex.Split(sIntegrantes, @","); for (int i = 0; i < aTareas.Length - 1; i++) { sCad = aTareas[i]; if (sCad != "") { string[] aElem = Regex.Split(sCad, @"##"); sOperacion = aElem[0]; iEmpleado = System.Convert.ToInt32(aElem[1]); sCodRed = aElem[2]; if (bAlta && int.Parse(HttpContext.Current.Session["IDFICEPI_PC_ACTUAL"].ToString()) == iEmpleado) { continue; } //GrupoFun.InsertarIntegrante(tr, iCodGF, iEmpleado, iResponsable); switch (sOperacion) { case "D": GrupoProf.BorrarProfesional(tr, sCodGP, iEmpleado); aListDestinatarios.Add(sCodRed); break; case "I": GrupoProf.InsertarProfesional(tr, sCodGP, iEmpleado); break; } //switch } } //for } //Cierro transaccion Conexion.CommitTransaccion(tr); string sTexto = ""; string sAsunto = ""; string sTO = ""; sAsunto = "Borrado de un integrante de un grupo de profesionales"; sTexto = @" <LABEL class='TITULO'>Informarle que el profesional " + HttpContext.Current.Session["APELLIDO1"] + " " + HttpContext.Current.Session["APELLIDO2"] + ", " + HttpContext.Current.Session["NOMBRE"] + ", te ha borrado del grupo '" + sDesGP + "' del que eres integrante. </LABEL>"; ArrayList aListCorreo = new ArrayList(); for (int i = 0; i < aListDestinatarios.Count; i++) { sTO = (string)aListDestinatarios[i]; string[] aMail = { sAsunto, sTexto, sTO, "" }; aListCorreo.Add(aMail); } Correo.EnviarCorreosCAUDEF(aListCorreo); sCad = DetalleIntegrantes(sCodGP); sResul = "OK@#@" + sCodGP + "@#@" + sCad; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }
public static string Eliminar(string strGrupo) { string sResul = ""; SqlConnection oConn = null; SqlTransaction tr = null; SqlDataReader dr = null; #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); } throw (new Exception("Error al abrir la conexión. " + ex.Message)); } #endregion try { string[] aGP = Regex.Split(strGrupo, "##"); string sDenomGrupo = ""; ArrayList aListDestinatarios = new ArrayList(); foreach (string oGP in aGP) { if (oGP != "") { //Leo integrantes para notificar correo dr = SUPER.Capa_Datos.GrupoProf.Integrantes(oGP); while (dr.Read()) { aListDestinatarios.Add(dr["t001_codred"].ToString()); } dr.Close(); dr.Dispose(); //Leo denominación grupo GrupoProf miGP = new GrupoProf(); miGP.Obtener(oGP); sDenomGrupo = miGP.sDesGP; miGP = null; GrupoProf.BorrarGrupo(tr, oGP); } } Conexion.CommitTransaccion(tr); string sTexto = ""; string sAsunto = ""; string sTO = ""; sAsunto = "Borrado de equipo de profesionales"; //sTexto = @" <LABEL class='TITULO'>Informarle que el profesional " + HttpContext.Current.Session["APELLIDO1"] + " " + HttpContext.Current.Session["APELLIDO2"] + ", " + HttpContext.Current.Session["NOMBRE"] + ", ha procedido a borrar el grupo '" + sDenomGrupo + "' del que eres integrante. </LABEL>"; sTexto = @" <LABEL class='TITULO'>El profesional " + HttpContext.Current.Session["APELLIDO1"] + " " + HttpContext.Current.Session["APELLIDO2"] + ", " + HttpContext.Current.Session["NOMBRE"] + ", ha procedido a borrar el grupo '" + sDenomGrupo + "' del que eres integrante. </LABEL>"; ArrayList aListCorreo = new ArrayList(); for (int i = 0; i < aListDestinatarios.Count; i++) { sTO = (string)aListDestinatarios[i]; string[] aMail = { sAsunto, sTexto, sTO, "" }; aListCorreo.Add(aMail); } Correo.EnviarCorreosCAUDEF(aListCorreo); } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = Errores.mostrarError("Error al eliminar el grupo de profesionales.", ex); } finally { Conexion.Cerrar(oConn); if (sResul != "") { throw (new Exception(sResul)); } } // Enviar correos a los integrantes del grupo return("OK@#@" + sResul); }