protected void gvEmprendedores_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName.Equals("deleteEmprendedor")) { try { if (e.CommandArgument != null) { string[] parametros; parametros = e.CommandArgument.ToString().Split(';'); int codigoProyecto = Convert.ToInt32(parametros[0]); int codigoContacto = Convert.ToInt32(parametros[1]); using (Datos.FonadeDBDataContext db = new Datos.FonadeDBDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString)) { var tareasPendientes = (from tareas in db.TareaUsuarios join tareaRepeticion in db.TareaUsuarioRepeticions on tareas.Id_TareaUsuario equals tareaRepeticion.CodTareaUsuario where tareas.CodContacto == codigoContacto && tareaRepeticion.FechaCierre == null select tareas).Any(); if (tareasPendientes) { throw new ApplicationException("No se puede eliminar el emprendedor porque tiene tareas pendientes"); } GrupoContacto grupocontacto = db.GrupoContactos.Single(grupo => grupo.CodContacto.Equals(codigoContacto)); db.GrupoContactos.DeleteOnSubmit(grupocontacto); ProyectoContacto proyectocontacto = db.ProyectoContactos.Single(proyecto => proyecto.CodContacto == codigoContacto && proyecto.CodProyecto == codigoProyecto && proyecto.Inactivo == false && proyecto.CodRol == Constantes.CONST_RolEmprendedor); proyectocontacto.Inactivo = true; proyectocontacto.FechaFin = DateTime.Now; Contacto contacto = db.Contacto.Single(contactoProyecto => contactoProyecto.Id_Contacto == codigoContacto); contacto.Inactivo = true; lblError.Visible = false; db.SubmitChanges(); gvEmprendedores.DataBind(); } } } catch (ApplicationException ex) { lblError.Visible = true; lblError.Text = "Advertencia : " + ex.Message; } catch (Exception ex) { lblError.Visible = true; lblError.Text = "Sucedio un error inesperado al eliminar el emprendedor."; } } else if (e.CommandName.Equals("updateEmprendedor")) { if (e.CommandArgument != null) { string[] parametros; parametros = e.CommandArgument.ToString().Split(';'); int codigoProyecto = Convert.ToInt32(parametros[0]); int codigoContacto = Convert.ToInt32(parametros[1]); Session["codigoEmprendedor"] = codigoContacto; Redirect(null, "~/FONADE/PlandeNegocio/CrearEmprendedor.aspx", "_blank", "menubar=0,scrollbars=1,width=1000,height=600,top=50"); } } }
public void AddJefeUnidadAInstitucion(int codigoContacto, int codigoInstitucion) { using (Datos.FonadeDBDataContext db = new Datos.FonadeDBDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString)) { var entities = db.InstitucionContacto.Where(filter => filter.CodInstitucion.Equals(codigoInstitucion) && filter.FechaFin == null ).ToList(); if (!entities.Any()) { var entity = new InstitucionContacto { CodContacto = codigoContacto, CodInstitucion = codigoInstitucion, FechaInicio = DateTime.Now, MotivoCambioJefe = txtMotivoCambioJefeUnidad.Text }; db.InstitucionContacto.InsertOnSubmit(entity); var isJefeUnidad = db.GrupoContactos.Any(filter => filter.CodContacto.Equals(codigoContacto) && filter.CodGrupo.Equals(Constantes.CONST_JefeUnidad)); if (!isJefeUnidad) { var nuevoGrupoJefe = new GrupoContacto { CodContacto = codigoContacto, CodGrupo = Constantes.CONST_JefeUnidad }; db.GrupoContactos.InsertOnSubmit(nuevoGrupoJefe); } var infoJefeUnidad = db.Contacto.FirstOrDefault(filter => filter.Id_Contacto.Equals(codigoContacto)); if (infoJefeUnidad != null) { infoJefeUnidad.Inactivo = false; enviarEmail("Credenciales de acceso a fondo emprender jefe unidad", infoJefeUnidad.Email, infoJefeUnidad.Email, infoJefeUnidad.Clave); enviarEmail("Credenciales de acceso a fondo emprender jefe unidad", usuario.Email, infoJefeUnidad.Email, infoJefeUnidad.Clave, true); } db.SubmitChanges(); } else { var isContactoActive = false; foreach (var entity in entities) { if (!entity.CodContacto.Equals(codigoContacto)) { entity.FechaFin = DateTime.Now; entity.MotivoCambioJefe = txtMotivoCambioJefeUnidad.Text; var contactoJefe = db.Contacto.First(filter => filter.Id_Contacto.Equals(entity.CodContacto)); contactoJefe.CodInstitucion = Constantes.CONST_UnidadTemporal; } else { isContactoActive = true; entity.MotivoCambioJefe = txtMotivoCambioJefeUnidad.Text; var contactoJefe = db.Contacto.First(filter => filter.Id_Contacto.Equals(entity.CodContacto)); contactoJefe.CodInstitucion = codigoInstitucion; contactoJefe.Inactivo = false; if (contactoJefe != null) { enviarEmail("Credenciales de acceso a fondo emprender jefe unidad", contactoJefe.Email, contactoJefe.Email, contactoJefe.Clave); enviarEmail("Credenciales de acceso a fondo emprender jefe unidad", usuario.Email, contactoJefe.Email, contactoJefe.Clave, true); } } } if (!isContactoActive) { var entity = new InstitucionContacto { CodContacto = codigoContacto, CodInstitucion = codigoInstitucion, FechaInicio = DateTime.Now, MotivoCambioJefe = txtMotivoCambioJefeUnidad.Text }; db.InstitucionContacto.InsertOnSubmit(entity); var contactoJefe = db.Contacto.First(filter => filter.Id_Contacto.Equals(codigoContacto)); contactoJefe.CodInstitucion = codigoInstitucion; contactoJefe.Inactivo = false; var isJefeUnidad = db.GrupoContactos.Any(filter => filter.CodContacto.Equals(codigoContacto) && filter.CodGrupo.Equals(Constantes.CONST_JefeUnidad)); if (!isJefeUnidad) { var nuevoGrupoJefe = new GrupoContacto { CodContacto = codigoContacto, CodGrupo = Constantes.CONST_JefeUnidad }; db.GrupoContactos.InsertOnSubmit(nuevoGrupoJefe); } if (contactoJefe != null) { enviarEmail("Credenciales de acceso a fondo emprender jefe unidad", contactoJefe.Email, contactoJefe.Email, contactoJefe.Clave); enviarEmail("Credenciales de acceso a fondo emprender jefe unidad", usuario.Email, contactoJefe.Email, contactoJefe.Clave, true); } } db.SubmitChanges(); } } }