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(); } } }
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(); } } }
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(',')); } }
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); } }
/// <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(); } } } }
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"); } } }