Exemple #1
0
 public MiEmail(Envio_mail mail, Tesina t)
 {
     using (HabProfDBContainer cxt = new Aplicativo.HabProfDBContainer())
     {
         Persona p = cxt.Personas.FirstOrDefault(pp => pp.persona_id == mail.persona_id);
         Tipo_mail               = (tipo_mail)Enum.Parse(typeof(tipo_mail), mail.envio_tipo);
         Smtp_client             = p.Licenciatura.Servidor.servidor_smtp_host;
         Smtp_puerto             = p.Licenciatura.Servidor.servidor_smtp_port;
         Persona_nombre          = p.persona_nomyap;
         Persona_usuario         = p.persona_usuario;
         Persona_pass            = Cripto.Desencriptar(p.persona_clave);
         Url_respuesta           = ConfigurationManager.AppSettings["direccion_localhost_raiz"] + "landing_mail.aspx?tipo_mail=" + mail.envio_tipo + "&clave=" + mail.envio_respuesta_clave;
         Credenciales_mail       = p.Licenciatura.licenciatura_email;
         Credenciales_contraseña = p.Licenciatura.licenciatura_email_clave;
         Destinatarios           = new List <string>(mail.envio_email_destino.Replace(" ", "").Split(','));
         //datos extra para el envio de mails
         Director_mail                = t.Director.Persona.persona_email;
         Director_nombre              = t.Director.Persona.persona_nomyap;
         Codirector_mail              = t.Codirector != null ? t.Codirector.Persona.persona_email : "-";
         Codirector_nombre            = t.Codirector != null ? t.Codirector.Persona.persona_nomyap : "-";
         Tesista_mail                 = t.Tesista.Persona.persona_email;
         Tesista_nombre               = t.Tesista.Persona.persona_nomyap;
         Tesis_fecha_limite           = t.tesina_plan_fch_presentacion.AddMonths(t.tesina_plan_duracion_meses - 1).ToShortDateString();
         Tesis_periodo_notificaciones = t.tesina_plan_aviso_meses.ToString();
         Tesis_tema            = t.tesina_tema;
         Tesis_Url_archivo     = ConfigurationManager.AppSettings["direccion_localhost_raiz"] + mail.envio_respuesta_clave;
         Tesis_meses_restantes = Math.Abs((t.tesina_plan_fch_presentacion.AddMonths(t.tesina_plan_duracion_meses).Month - DateTime.Today.Month) + 12 * (t.tesina_plan_fch_presentacion.AddMonths(t.tesina_plan_duracion_meses).Year - DateTime.Today.Year)) - 1;
     }
 }
        private void ObtenerDirectores()
        {
            lbl_agregar_actualizar_director.Text = "Agregar "; //seteo el encabezado del popup porque el boton agregar levanta el popup desde html sin venir hasta el servidor
            hidden_id_director_editar.Value      = "0";
            using (HabProfDBContainer cxt = new Aplicativo.HabProfDBContainer())
            {
                var directores = (from d in cxt.Directores
                                  where d.director_fecha_baja == null
                                  select d).ToList();

                var directores_con_tesina_a_cargo = (from d in directores
                                                     select new
                {
                    director_id = d.director_id,
                    persona_nomyap = d.Persona.persona_nomyap,
                    persona_dni = d.Persona.persona_dni,
                    persona_email = d.Persona.persona_email,
                    director_tesina_a_cargo = d.Tesinas_a_cargo,
                    director_calificacion = d.Calificacion_general
                }).ToList();

                if (directores_con_tesina_a_cargo.Count() > 0)
                {
                    gv_directores.DataSource = directores_con_tesina_a_cargo;
                    gv_directores.DataBind();
                    lbl_sin_directores.Visible = false;
                }
                else
                {
                    lbl_sin_directores.Visible = true;
                    gv_directores.DataSource   = null;
                    gv_directores.DataBind();
                }
            }
        }
Exemple #3
0
        private void ObtenerJueces()
        {
            lbl_agregar_actualizar_juez.Text = "Agregar "; //seteo el encabezado del popup porque el boton agregar levanta el popup desde html sin venir hasta el servidor
            hidden_id_juez_editar.Value      = "0";
            using (HabProfDBContainer cxt = new Aplicativo.HabProfDBContainer())
            {
                var jueces = (from d in cxt.Jueces
                              where d.juez_fecha_baja == null
                              select d).ToList();

                var jueces_con_tesina_a_cargo = (from d in jueces
                                                 select new
                {
                    juez_id = d.juez_id,
                    persona_nomyap = d.Persona.persona_nomyap,
                    persona_dni = d.Persona.persona_dni,
                    persona_email = d.Persona.persona_email
                }).ToList();


                if (jueces_con_tesina_a_cargo.Count() > 0)
                {
                    gv_jueces.DataSource = jueces_con_tesina_a_cargo;
                    gv_jueces.DataBind();
                    lbl_sin_jueces.Visible = false;
                }
                else
                {
                    lbl_sin_jueces.Visible = true;
                    gv_jueces.DataSource   = null;
                    gv_jueces.DataBind();
                }
            }
        }
        private void ObtenerTesistas()
        {
            using (HabProfDBContainer cxt = new Aplicativo.HabProfDBContainer())
            {
                Estado_tesina et_vencida     = cxt.Estados_tesinas.FirstOrDefault(eett => eett.estado_tesina_estado == "Vencida");
                Estado_tesina et_lista       = cxt.Estados_tesinas.FirstOrDefault(eett => eett.estado_tesina_estado == "Lista para presentar");
                Estado_tesina et_aprobada    = cxt.Estados_tesinas.FirstOrDefault(eett => eett.estado_tesina_estado == "Aprobada");
                Estado_tesina et_desaprobada = cxt.Estados_tesinas.FirstOrDefault(eett => eett.estado_tesina_estado == "Desaprobada");

                List <Tesina> tesinas = cxt.Tesinas.Where(tt =>
                                                          tt.estado_tesis_id != et_lista.estado_tesina_id &&
                                                          tt.estado_tesis_id != et_aprobada.estado_tesina_id &&
                                                          tt.estado_tesis_id != et_desaprobada.estado_tesina_id
                                                          ).ToList();

                var tesistas_con_tesinas_de_mas_de_dos_años_de_antiguedad = (from tesina in tesinas
                                                                             where
                                                                             tesina.Historial_estados.Min(he => he.historial_tesina_fecha) <= DateTime.Today.AddYears(-2)
                                                                             select tesina.Tesista).ToList();

                var tesistas = (
                    from t in tesistas_con_tesinas_de_mas_de_dos_años_de_antiguedad
                    where t.tesista_baja_definitiva == null
                    select new
                {
                    tesista_id = t.tesista_id,
                    persona_nomyap = t.Persona.persona_nomyap,
                    persona_dni = t.Persona.persona_dni,
                    persona_email = t.Persona.persona_email,
                    tesista_legajo = t.tesista_legajo,
                    tesista_sede = t.tesista_sede,
                    fecha_baja = t.tesista_fecha_baja
                }).ToList();

                var tesistas_estado_activo_inactivo = (from t in tesistas
                                                       select new
                {
                    tesista_id = t.tesista_id,
                    persona_nomyap = t.persona_nomyap,
                    persona_dni = t.persona_dni,
                    persona_email = t.persona_email,
                    tesista_legajo = t.tesista_legajo,
                    tesista_sede = t.tesista_sede
                }).OrderBy(t => t.persona_nomyap).ToList();

                if (tesistas.Count() > 0)
                {
                    gv_tesistas.DataSource = tesistas_estado_activo_inactivo;
                    gv_tesistas.DataBind();
                    lbl_sin_tesistas.Visible = false;
                }
                else
                {
                    lbl_sin_tesistas.Visible = true;
                    gv_tesistas.DataSource   = null;
                    gv_tesistas.DataBind();
                }
            }
        }
        private void ObtenerTesistas()
        {
            lbl_agregar_actualizar_tesista.Text = "Agregar "; //seteo el encabezado del popup porque el boton agregar levanta el popup desde html sin venir hasta el servidor
            hidden_id_tesista_editar.Value      = "0";
            using (HabProfDBContainer cxt = new Aplicativo.HabProfDBContainer())
            {
                var tesistas = (
                    from t in cxt.Tesistas
                    where t.tesista_baja_definitiva == null
                    select new
                {
                    tesista_id = t.tesista_id,
                    persona_nomyap = t.Persona.persona_nomyap,
                    persona_dni = t.Persona.persona_dni,
                    persona_email = t.Persona.persona_email,
                    tesista_legajo = t.tesista_legajo,
                    tesista_sede = t.tesista_sede,
                    fecha_baja = t.tesista_fecha_baja
                }).ToList();

                var tesistas_estado_activo_inactivo = (from t in tesistas
                                                       select new
                {
                    tesista_id = t.tesista_id,
                    persona_nomyap = t.persona_nomyap,
                    persona_dni = t.persona_dni,
                    persona_email = t.persona_email,
                    tesista_legajo = t.tesista_legajo,
                    tesista_sede = t.tesista_sede,
                    estado = t.fecha_baja == null ? "Activo" : "Inactivo",
                    mostrar_inhabilitar = t.fecha_baja == null,
                    mostrar_habilitar = t.fecha_baja != null
                }).OrderBy(t => t.estado).ThenBy(t => t.persona_nomyap).ToList();

                if (tesistas.Count() > 0)
                {
                    gv_tesistas.DataSource = tesistas_estado_activo_inactivo;
                    gv_tesistas.DataBind();
                    lbl_sin_tesistas.Visible = false;
                }
                else
                {
                    lbl_sin_tesistas.Visible = true;
                    gv_tesistas.DataSource   = null;
                    gv_tesistas.DataBind();
                }
            }
        }
Exemple #6
0
 public MiEmail(Envio_mail mail)
 {
     using (HabProfDBContainer cxt = new Aplicativo.HabProfDBContainer())
     {
         Persona p = cxt.Personas.FirstOrDefault(pp => pp.persona_id == mail.persona_id);
         Tipo_mail               = (tipo_mail)Enum.Parse(typeof(tipo_mail), mail.envio_tipo);
         Smtp_client             = p.Licenciatura.Servidor.servidor_smtp_host;
         Smtp_puerto             = p.Licenciatura.Servidor.servidor_smtp_port;
         Persona_nombre          = p.persona_nomyap;
         Persona_usuario         = p.persona_usuario;
         Persona_pass            = Cripto.Desencriptar(p.persona_clave);
         Url_respuesta           = ConfigurationManager.AppSettings["direccion_localhost_raiz"] + "landing_mail.aspx?tipo_mail=" + mail.envio_tipo + "&clave=" + mail.envio_respuesta_clave;
         Credenciales_mail       = p.Licenciatura.licenciatura_email;
         Credenciales_contraseña = p.Licenciatura.licenciatura_email_clave;
         Destinatarios           = new List <string>(mail.envio_email_destino.Replace(" ", "").Split(','));
     }
 }
Exemple #7
0
        private void ObtenerMesas()
        {
            using (HabProfDBContainer cxt = new Aplicativo.HabProfDBContainer())
            {
                var mesas = (from m in cxt.Mesas
                             select new
                {
                    mesa_id = m.mesa_id,
                    mesa_fecha = m.mesa_fecha,
                    mesa_estado = m.mesa_estado,
                }).ToList();

                var mesas_para_grilla = (from m in mesas
                                         select new
                {
                    mesa_id = m.mesa_id,
                    mesa_fecha = m.mesa_fecha,
                    mesa_estado = m.mesa_estado,
                    enabled_cerrar = m.mesa_estado == "Cerrada",
                    enabled_editar = m.mesa_estado == "Generada",
                    eliminar_mesa = m.mesa_estado == "Generada" ? "":"disabled"
                });

                if (mesas.Count() > 0)
                {
                    gv_mesas.DataSource = mesas_para_grilla;
                    gv_mesas.DataBind();
                    lbl_sin_mesas.Visible = false;
                }
                else
                {
                    lbl_sin_mesas.Visible = true;
                    gv_mesas.DataSource   = null;
                    gv_mesas.DataBind();
                }
            }
        }
        protected void btn_cambiar_clave_Click(object sender, EventArgs e)
        {
            Persona admin                  = Session["UsuarioLogueado"] as Persona;
            string  clave_actual_db        = admin.persona_clave;
            string  clave_actual_ingresada = tb_clave_actual.Text;
            string  clave_nueva            = tb_clave_nueva.Text;
            string  clave_nueva_repite     = tb_clave_nueva_repite.Text;


            if (clave_actual_db != Cripto.Encriptar(clave_actual_ingresada) || clave_nueva != clave_nueva_repite)
            {
                MessageBox.Show(this, "Las claves ingresadas no coinciden", MessageBox.Tipo_MessageBox.Danger);
            }
            else
            {
                using (HabProfDBContainer cxt = new Aplicativo.HabProfDBContainer())
                {
                    Persona admin_cxt = cxt.Personas.FirstOrDefault(pp => pp.persona_id == admin.persona_id);
                    admin_cxt.persona_clave = Cripto.Encriptar(clave_nueva);
                    cxt.SaveChanges();
                }
                MessageBox.Show(this, "La clave se actualizó correctamente.-", MessageBox.Tipo_MessageBox.Success);
            }
        }
Exemple #9
0
        /// <summary>
        /// Verifico y marco como vencidas las tesinas que no esten en estado vencida, lista para presentar, aprobadas o desaprobadas.
        /// Ver el tema de si vencer o no las que se presentaron para corregir y estan en poder del director o administrador
        /// </summary>
        public void Verificar_y_marcar_tesinas_vencidas()
        {
            using (HabProfDBContainer cxt = new Aplicativo.HabProfDBContainer())
            {
                Estado_tesina et_vencida     = cxt.Estados_tesinas.FirstOrDefault(eett => eett.estado_tesina_estado == "Vencida");
                Estado_tesina et_lista       = cxt.Estados_tesinas.FirstOrDefault(eett => eett.estado_tesina_estado == "Lista para presentar");
                Estado_tesina et_aprobada    = cxt.Estados_tesinas.FirstOrDefault(eett => eett.estado_tesina_estado == "Aprobada");
                Estado_tesina et_desaprobada = cxt.Estados_tesinas.FirstOrDefault(eett => eett.estado_tesina_estado == "Desaprobada");

                List <Tesina> tesinas = cxt.Tesinas.Where(tt =>
                                                          tt.estado_tesis_id != et_vencida.estado_tesina_id &&
                                                          tt.estado_tesis_id != et_lista.estado_tesina_id &&
                                                          tt.estado_tesis_id != et_aprobada.estado_tesina_id &&
                                                          tt.estado_tesis_id != et_desaprobada.estado_tesina_id
                                                          ).ToList();

                foreach (Tesina tesina in tesinas)
                {
                    DateTime fecha_vencimiento = tesina.tesina_plan_fch_presentacion.AddMonths(tesina.tesina_plan_duracion_meses);
                    if (fecha_vencimiento < DateTime.Today)
                    {
                        tesina.Historial_estados.Add(new Historial_estado()
                        {
                            estado_tesina_id = et_vencida.estado_tesina_id, historial_tesina_fecha = fecha_vencimiento, historial_tesina_descripcion = "Se venció el plazo para presentar una tesina lista para evaluar"
                        });
                        tesina.estado_tesis_id = et_vencida.estado_tesina_id;

                        Envio_mail em_director = new Envio_mail()
                        {
                            persona_id            = tesina.Director.Persona.persona_id,
                            envio_email_destino   = tesina.Director.Persona.persona_email,
                            envio_fecha_hora      = DateTime.Now,
                            envio_respuesta_clave = "no se usa",
                            envio_tipo            = MiEmail.tipo_mail.notificacion_tesina_vencida.ToString()
                        };
                        cxt.Envio_mails.Add(em_director);

                        Envio_mail em_tesista = new Envio_mail()
                        {
                            persona_id            = tesina.Tesista.Persona.persona_id,
                            envio_email_destino   = tesina.Tesista.Persona.persona_email,
                            envio_fecha_hora      = DateTime.Now,
                            envio_respuesta_clave = "no se usa",
                            envio_tipo            = MiEmail.tipo_mail.notificacion_tesina_vencida.ToString()
                        };
                        cxt.Envio_mails.Add(em_tesista);

                        MiEmail me_director = new MiEmail(em_director, tesina);
                        MiEmail me_tesista  = new MiEmail(em_tesista, tesina);

                        me_director.Enviar_mail();
                        me_tesista.Enviar_mail();

                        if (tesina.Codirector != null)
                        {
                            Envio_mail em_codirector = new Envio_mail()
                            {
                                persona_id            = tesina.Codirector.Persona.persona_id,
                                envio_email_destino   = tesina.Codirector.Persona.persona_email,
                                envio_fecha_hora      = DateTime.Now,
                                envio_respuesta_clave = "no se usa",
                                envio_tipo            = MiEmail.tipo_mail.notificacion_tesina_vencida.ToString()
                            };
                            cxt.Envio_mails.Add(em_codirector);
                            MiEmail me_codirector = new MiEmail(em_codirector, tesina);
                            me_codirector.Enviar_mail();
                        }

                        cxt.SaveChanges();
                    }
                }
            }
        }
Exemple #10
0
        protected void btn_crear_mesa_Click(object sender, EventArgs e)
        {
            Validate();
            if (IsValid)
            {
                string str_mesa_id = Request.QueryString["m"];
                int    mesa_id     = 0;
                if (str_mesa_id == null || int.TryParse(str_mesa_id, out mesa_id))
                {
                    using (HabProfDBContainer cxt = new Aplicativo.HabProfDBContainer())
                    {
                        Mesa mesa = new Mesa();
                        if (str_mesa_id == null)
                        {
                            //mesa nueva
                            mesa = new Aplicativo.Mesa();
                            cxt.Mesas.Add(mesa);
                        }
                        else
                        {
                            mesa = cxt.Mesas.FirstOrDefault(mm => mm.mesa_id == mesa_id);
                            //elimino los jueces y tesinas que tenia asignada para cargar los nuevos
                            List <int> id_jueces = mesa.Jueces.Select(jj => jj.juez_id).ToList();
                            foreach (int id_juez in id_jueces)
                            {
                                Jurado j = cxt.Jueces.FirstOrDefault(jj => jj.juez_id == id_juez);
                                mesa.Jueces.Remove(j);
                            }

                            List <int> id_tesinas = mesa.Tesinas.Select(tt => tt.tesina_id).ToList();
                            foreach (int id_tesina in id_tesinas)
                            {
                                Tesina t = cxt.Tesinas.FirstOrDefault(tt => tt.tesina_id == id_tesina);
                                mesa.Tesinas.Remove(t);
                            }
                        }

                        string[] jurados_ids = hidden_ids_jueces.Value.Split(',');
                        string[] tesinas_ids = hidden_tesinas_seleccionadas.Value.Split(',');

                        //Agrego jueces
                        foreach (string str_jurado_id in jurados_ids)
                        {
                            int jurado_id;
                            if (int.TryParse(str_jurado_id, out jurado_id))
                            {
                                Jurado jurado = cxt.Jueces.FirstOrDefault(jj => jj.juez_id == jurado_id);
                                mesa.Jueces.Add(jurado);
                            }
                        }

                        //agrego tesinas
                        foreach (string str_tesina_id in tesinas_ids)
                        {
                            int tesina_id;
                            if (int.TryParse(str_tesina_id, out tesina_id))
                            {
                                Tesina tesina = cxt.Tesinas.FirstOrDefault(tt => tt.tesina_id == tesina_id);
                                mesa.Tesinas.Add(tesina);
                            }
                        }

                        mesa.mesa_fecha          = Convert.ToDateTime(tb_fecha_mesa.Value);
                        mesa.mesa_codigo_carrera = Convert.ToInt32(tb_cod_carrera.Text);
                        mesa.mesa_codigo_materia = Convert.ToInt32(tb_cod_materia.Text);
                        mesa.mesa_codigo_plan    = Convert.ToInt32(tb_cod_plan.Text);

                        mesa.mesa_estado = "Generada";

                        /*
                         * Envio_mail em_codirector = new Envio_mail()
                         * {
                         *  persona_id = tesina.Codirector.Persona.persona_id,
                         *  envio_email_destino = tesina.Codirector.Persona.persona_email,
                         *  envio_fecha_hora = DateTime.Now,
                         *  envio_respuesta_clave = "no se usa",
                         *  envio_tipo = MiEmail.tipo_mail.notificacion_eliminacion_tesina_director.ToString()
                         * };
                         * cxt.Envio_mails.Add(em_codirector);
                         * MiEmail me_codirector = new MiEmail(em_codirector, tesina);
                         * me_codirector.Enviar_mail();
                         */

                        foreach (Jurado jurado in mesa.Jueces)
                        {
                            Envio_mail em_jurado = new Envio_mail()
                            {
                                persona_id            = jurado.Persona.persona_id,
                                envio_email_destino   = jurado.Persona.persona_email,
                                envio_fecha_hora      = DateTime.Now,
                                envio_respuesta_clave = "no se usa",
                                envio_tipo            = MiEmail.tipo_mail.notificacion_alta_mesa_jurado.ToString()
                            };
                            cxt.Envio_mails.Add(em_jurado);
                            MiEmail me_jurado = new MiEmail(em_jurado, "Jurado", mesa.mesa_fecha);
                            me_jurado.Enviar_mail();
                        }

                        foreach (Tesina tesina in mesa.Tesinas)
                        {
                            Envio_mail em_tesista = new Envio_mail()
                            {
                                persona_id            = tesina.Tesista.Persona.persona_id,
                                envio_email_destino   = tesina.Tesista.Persona.persona_email,
                                envio_fecha_hora      = DateTime.Now,
                                envio_respuesta_clave = "no se usa",
                                envio_tipo            = MiEmail.tipo_mail.notificacion_alta_mesa_tesista.ToString()
                            };
                            cxt.Envio_mails.Add(em_tesista);
                            MiEmail me_tesista = new MiEmail(em_tesista, "Tesista", mesa.mesa_fecha);
                            me_tesista.Enviar_mail();

                            Envio_mail em_director = new Envio_mail()
                            {
                                persona_id            = tesina.Director.Persona.persona_id,
                                envio_email_destino   = tesina.Director.Persona.persona_email,
                                envio_fecha_hora      = DateTime.Now,
                                envio_respuesta_clave = "no se usa",
                                envio_tipo            = MiEmail.tipo_mail.notificacion_alta_mesa.ToString()
                            };
                            cxt.Envio_mails.Add(em_director);
                            MiEmail me_director = new MiEmail(em_director, "Director", mesa.mesa_fecha);
                            me_director.Enviar_mail();

                            if (tesina.Codirector != null)
                            {
                                Envio_mail em_codirector = new Envio_mail()
                                {
                                    persona_id            = tesina.Codirector.Persona.persona_id,
                                    envio_email_destino   = tesina.Codirector.Persona.persona_email,
                                    envio_fecha_hora      = DateTime.Now,
                                    envio_respuesta_clave = "no se usa",
                                    envio_tipo            = MiEmail.tipo_mail.notificacion_alta_mesa.ToString()
                                };
                                cxt.Envio_mails.Add(em_codirector);
                                MiEmail me_codirector = new MiEmail(em_codirector, tesina);
                                me_codirector.Enviar_mail();
                            }
                        }

                        cxt.SaveChanges();

                        MessageBox.Show(this, "La mesa se creo correctamente", MessageBox.Tipo_MessageBox.Success, "Exito", "../Aplicativo/admin_mesas.aspx");
                    }
                }
                else
                {
                    MessageBox.Show(this, "No se encontro la mesa buscada", MessageBox.Tipo_MessageBox.Danger, "Atención", "../Aplicativo/admin_mesas.aspx");
                }
            }
        }