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");
                }
            }
        }
示例#2
0
        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();
                }
            }
        }