private void Enviar_validacion() { Persona p = Session["UsuarioLogueado"] as Persona; using (HabProfDBContainer cxt = new HabProfDBContainer()) { Persona p_cxt = cxt.Personas.FirstOrDefault(pp => pp.persona_id == p.persona_id); Envio_mail registro_envio_mail = new Envio_mail() { persona_id = p_cxt.persona_id, envio_fecha_hora = DateTime.Now, envio_email_destino = p_cxt.persona_email, //de haber mas de un destinatario separar por coma Ej: mail + "," + mail2 + "," + mail3 envio_respuesta_clave = Guid.NewGuid().ToString(), envio_tipo = MiEmail.tipo_mail.validacion.ToString() }; cxt.Envio_mails.Add(registro_envio_mail); cxt.SaveChanges(); MiEmail mail = new MiEmail(registro_envio_mail); if (mail.Enviar_mail()) { MessageBox.Show(this, "El correo se envió satisfactoriamente", MessageBox.Tipo_MessageBox.Success); lbl_validado.Text = "Sin validar"; lbl_validado.ForeColor = Color.DarkRed; } else { MessageBox.Show(this, "Ocurrio un error en el envio del correo", MessageBox.Tipo_MessageBox.Warning, "Oops!!"); } } }
public void Enviar_notificaciones(List <Tesina> tesinas) { using (HabProfDBContainer cxt = new HabProfDBContainer()) { foreach (Tesina tesina in tesinas) { Tesina tesina_cxt = cxt.Tesinas.FirstOrDefault(tt => tt.tesina_id == tesina.tesina_id); Envio_mail registro_envio_mail_notificacion = new Envio_mail() { persona_id = tesina_cxt.Tesista.Persona.persona_id, envio_fecha_hora = DateTime.Now, envio_email_destino = tesina_cxt.Tesista.Persona.persona_email, envio_respuesta_clave = "no se usa", envio_tipo = MiEmail.tipo_mail.notificacion_recordatorio_automatico.ToString() }; cxt.Envio_mails.Add(registro_envio_mail_notificacion); MiEmail mail = new MiEmail(registro_envio_mail_notificacion, tesina); if (mail.Enviar_mail()) { cxt.SaveChanges(); } } } }
protected void btn_guardar_ServerClick(object sender, EventArgs e) { this.Validate("tesista"); if (this.IsValid) { Persona usuario = Session["UsuarioLogueado"] as Persona; int id_tesista = Convert.ToInt32(hidden_id_tesista_editar.Value); int dni = 0; int.TryParse(tb_dni_tesista.Value, out dni); Persona p_tesista = null; Tesista tesista = null; using (HabProfDBContainer cxt = new HabProfDBContainer()) { if (id_tesista != 0) { //abrio por editar tesista tesista = cxt.Tesistas.FirstOrDefault(pp => pp.tesista_id == id_tesista); p_tesista = tesista.Persona; } else { p_tesista = cxt.Personas.FirstOrDefault(pp => pp.persona_dni == dni); if (p_tesista != null) { tesista = p_tesista.Tesista; } } //Agrego o actualizo la persona if (p_tesista == null) { p_tesista = new Persona() { licenciatura_id = usuario.licenciatura_id, persona_nomyap = tb_nombre_tesista.Value, persona_dni = dni, persona_email = tb_email.Value, persona_email_validado = false, persona_domicilio = tb_domicilio.Value, persona_telefono = tb_telefono.Value, persona_usuario = tb_usuario.Value, persona_clave = Cripto.Encriptar(tb_dni_tesista.Value), persona_estilo = "Slate" }; cxt.Personas.Add(p_tesista); } else { p_tesista.licenciatura_id = usuario.licenciatura_id; p_tesista.persona_nomyap = tb_nombre_tesista.Value; p_tesista.persona_dni = dni; p_tesista.licenciatura_id = usuario.licenciatura_id; p_tesista.persona_email = tb_email.Value; p_tesista.persona_email_validado = false; p_tesista.persona_domicilio = tb_domicilio.Value; p_tesista.persona_telefono = tb_telefono.Value; p_tesista.persona_usuario = tb_usuario.Value; if (chk_cambiar_clave.Checked) { p_tesista.persona_clave = Cripto.Encriptar(tb_contraseña.Value); } } bool tesista_nuevo = false; //agrego o actualizo el tesista if (tesista == null) { //no existe hago un insert tesista = new Tesista() { Persona = p_tesista, tesista_legajo = tb_legajo.Value, tesista_sede = tb_sede.Value }; tesista_nuevo = true; cxt.Tesistas.Add(tesista); } else { //existe el tesista por lo tanto tambien la persona y ya fue editada tesista.tesista_legajo = tb_legajo.Value; tesista.tesista_sede = tb_sede.Value; } try { cxt.SaveChanges(); if (file_tesis.HasFile) { string directorio = Server.MapPath("~/Archivos/Tesistas/" + tesista.tesista_id + "/"); if (!Directory.Exists(directorio)) { Directory.CreateDirectory(directorio); } string extencion_origen = Path.GetExtension(file_tesis.FileName); string path_save_file = directorio + "plan" + extencion_origen; file_tesis.SaveAs(path_save_file); } tb_dni_tesista.Value = string.Empty; tb_domicilio.Value = string.Empty; tb_email.Value = string.Empty; tb_legajo.Value = string.Empty; tb_nombre_tesista.Value = string.Empty; tb_sede.Value = string.Empty; tb_telefono.Value = string.Empty; hidden_id_tesista_editar.Value = "0"; if (tesista_nuevo) { Envio_mail registro_envio_mail = new Envio_mail() { persona_id = p_tesista.persona_id, envio_fecha_hora = DateTime.Now, envio_email_destino = p_tesista.persona_email, //de haber mas de un destinatario separar por coma Ej: mail + "," + mail2 + "," + mail3 envio_respuesta_clave = Guid.NewGuid().ToString(), envio_tipo = MiEmail.tipo_mail.alta_tesista.ToString() }; cxt.Envio_mails.Add(registro_envio_mail); cxt.SaveChanges(); MiEmail mail = new MiEmail(registro_envio_mail); mail.Enviar_mail(); } MessageBox.Show(this, "Se guardó correctamente el tesista!", MessageBox.Tipo_MessageBox.Success, "Exito!"); } catch (Exception ex) { MessageBox.Show(this, ex.Message, MessageBox.Tipo_MessageBox.Danger); } } ObtenerTesistas(); } else { string script = "<script language=\"javascript\" type=\"text/javascript\">$(document).ready(function() { $('#agregar_tesista').modal('show')});</script>"; ScriptManager.RegisterStartupScript(Page, this.GetType(), "ShowPopUp", script, false); } }
/// <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(); } } } }
/// <summary> /// Envia correos a las tesinas con los avisos automaticos pendientes /// </summary> /// <remarks> /// Procedimiento: /// - Marco las tesinas que deberian estar vencidas. /// - Obtengo las tesinas que no estan vencidas, listas para presentar, aprobadas o desaprobadas. /// - De estas tesinas verifico que la fecha actual (fa) sea mayor o igual a la fecha de inicio (fi) mas un múltiplo de los períodos de envio (xn) /// y que en ese tramo de tiempo (fi+xa y fa) no se hayan enviado notificaciones de este tipo /// </remarks> public void Enviar_correos_notificacion_automatica() { Verificar_y_marcar_tesinas_vencidas(); using (HabProfDBContainer cxt = new 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"); DateTime fecha_actual = DateTime.Today; 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) { //multiplo de avisos automáticos int multiplo = 0; //al salir de aca el multiplo es uno mas que el necesario es decir, el multiplo por el periodo entre avisos nos da la fecha del proximo envio while (tesina.tesina_plan_fch_presentacion.AddMonths(tesina.tesina_plan_aviso_meses * multiplo) <= fecha_actual) { multiplo++; } //descuento uno para obtener la fecha en la que se tuvo que haber enviado la ultima vez multiplo--; //si multiplo es mayor que cero quiere decir que deberia de enviar el aviso, si es que no se envió todavia if (multiplo > 0) { //busco en el periodo (fecha_presentacion + (multiplo * periodo_aviso)) y fecha_actual si se realizaron envios, de no ser asi tengo que realizar el envio DateTime desde = tesina.tesina_plan_fch_presentacion.AddMonths(multiplo * tesina.tesina_plan_aviso_meses); DateTime hasta = fecha_actual; List <Envio_mail> envios_automaticos = cxt.Envio_mails.Where(eemm => eemm.persona_id == tesina.Tesista.Persona.persona_id && eemm.envio_tipo == "notificacion_recordatorio_automatico").ToList(); bool enviar = (from ea in envios_automaticos where ea.envio_fecha_hora.Date >= desde && ea.envio_fecha_hora.Date <= hasta select ea).Count() == 0; if (enviar) { Envio_mail registro_envio_mail_notificacion = new Envio_mail() { persona_id = tesina.Tesista.Persona.persona_id, envio_fecha_hora = DateTime.Now, envio_email_destino = tesina.Tesista.Persona.persona_email, envio_respuesta_clave = "no se usa", envio_tipo = MiEmail.tipo_mail.notificacion_recordatorio_automatico.ToString() }; cxt.Envio_mails.Add(registro_envio_mail_notificacion); MiEmail mail = new MiEmail(registro_envio_mail_notificacion, tesina); if (mail.Enviar_mail()) { cxt.SaveChanges(); } } } } } }
protected void btn_prorrogar_Click(object sender, EventArgs e) { int tesina_id = Convert.ToInt32(hidden_tesina_id.Value); using (HabProfDBContainer cxt = new HabProfDBContainer()) { Tesina t = cxt.Tesinas.FirstOrDefault(tt => tt.tesina_id == tesina_id); Estado_tesina et = cxt.Estados_tesinas.FirstOrDefault(ee => ee.estado_tesina_estado == "Prorrogar"); Historial_estado he = new Historial_estado() { estado_tesina_id = et.estado_tesina_id, tesina_id = tesina_id, historial_tesina_fecha = DateTime.Now, historial_tesina_descripcion = "Se otorgo la prorroga solicitada" }; t.estado_tesis_id = et.estado_tesina_id; t.tesina_plan_fch_presentacion = Convert.ToDateTime(tb_fecha_inicio.Value); t.tesina_plan_duracion_meses = Convert.ToInt16(tb_duracion.Value); t.tesina_plan_aviso_meses = Convert.ToInt16(tb_notificacion.Value); cxt.Historial_estados.Add(he); Envio_mail em_director = new Envio_mail() { persona_id = t.Director.Persona.persona_id, envio_email_destino = t.Director.Persona.persona_email, envio_fecha_hora = DateTime.Now, envio_respuesta_clave = "no se usa", envio_tipo = MiEmail.tipo_mail.notificacion_tesina_prorrogada.ToString() }; cxt.Envio_mails.Add(em_director); Envio_mail em_tesista = new Envio_mail() { persona_id = t.Tesista.Persona.persona_id, envio_email_destino = t.Tesista.Persona.persona_email, envio_fecha_hora = DateTime.Now, envio_respuesta_clave = "no se usa", envio_tipo = MiEmail.tipo_mail.notificacion_tesina_prorrogada.ToString() }; cxt.Envio_mails.Add(em_tesista); MiEmail me_director = new MiEmail(em_director, t); MiEmail me_tesista = new MiEmail(em_tesista, t); me_director.Enviar_mail(); me_tesista.Enviar_mail(); if (t.Codirector != null) { Envio_mail em_codirector = new Envio_mail() { persona_id = t.Codirector.Persona.persona_id, envio_email_destino = t.Codirector.Persona.persona_email, envio_fecha_hora = DateTime.Now, envio_respuesta_clave = "no se usa", envio_tipo = MiEmail.tipo_mail.notificacion_tesina_prorrogada.ToString() }; cxt.Envio_mails.Add(em_codirector); MiEmail me_codirector = new MiEmail(em_codirector, t); me_codirector.Enviar_mail(); } cxt.SaveChanges(); tb_fecha_inicio.Value = ""; tb_duracion.Value = ""; tb_notificacion.Value = ""; ObtenerTesinas(); } }
protected void btn_pasar_a_lista_para_presentar_Click(object sender, EventArgs e) { int tesina_id = Convert.ToInt32(hidden_tesina_id.Value); using (HabProfDBContainer cxt = new HabProfDBContainer()) { Tesina t = cxt.Tesinas.FirstOrDefault(tt => tt.tesina_id == tesina_id); Estado_tesina et = cxt.Estados_tesinas.FirstOrDefault(ee => ee.estado_tesina_estado == "Lista para presentar"); string descripcion = "Esta lista para presentar"; Historial_estado he = new Historial_estado() { estado_tesina_id = et.estado_tesina_id, tesina_id = tesina_id, historial_tesina_fecha = DateTime.Now, historial_tesina_descripcion = descripcion }; t.estado_tesis_id = et.estado_tesina_id; cxt.Historial_estados.Add(he); #region envio de mails Envio_mail em_director = new Envio_mail() { persona_id = t.Director.Persona.persona_id, envio_email_destino = t.Director.Persona.persona_email, envio_fecha_hora = DateTime.Now, envio_respuesta_clave = "no se usa", envio_tipo = MiEmail.tipo_mail.notificacion_tesina_lista_para_presentar.ToString() }; cxt.Envio_mails.Add(em_director); MiEmail me_director = new MiEmail(em_director, t); me_director.Enviar_mail(); if (t.Codirector != null) { Envio_mail em_codirector = new Envio_mail() { persona_id = t.Codirector.Persona.persona_id, envio_email_destino = t.Codirector.Persona.persona_email, envio_fecha_hora = DateTime.Now, envio_respuesta_clave = "no se usa", envio_tipo = MiEmail.tipo_mail.notificacion_tesina_lista_para_presentar.ToString() }; cxt.Envio_mails.Add(em_codirector); MiEmail me_codirector = new MiEmail(em_codirector, t); me_codirector.Enviar_mail(); } Envio_mail em_tesista = new Envio_mail() { persona_id = t.Tesista.Persona.persona_id, envio_email_destino = t.Tesista.Persona.persona_email, envio_fecha_hora = DateTime.Now, envio_respuesta_clave = "no se usa", envio_tipo = MiEmail.tipo_mail.notificacion_tesina_lista_para_presentar_tesista.ToString() }; cxt.Envio_mails.Add(em_tesista); MiEmail me_tesista = new MiEmail(em_tesista, t); me_tesista.Enviar_mail(); List <Persona> administradores = t.Tesista.Persona.Licenciatura.Personas.Where(pp => pp.Administrador != null).ToList(); //tomo el primer administrador para asociar el envio de correo pero el mail al cual mando es el mail asociado a la licenciatura Envio_mail em_admin = new Envio_mail() { persona_id = administradores[0].persona_id, envio_email_destino = t.Tesista.Persona.Licenciatura.licenciatura_email, envio_fecha_hora = DateTime.Now, envio_respuesta_clave = "no se usa", envio_tipo = MiEmail.tipo_mail.notificacion_tesina_lista_para_presentar.ToString() }; cxt.Envio_mails.Add(em_admin); MiEmail me_admin = new MiEmail(em_admin, t); me_admin.Enviar_mail(); #endregion cxt.SaveChanges(); ObtenerTesinas(); } }
protected void btn_enviar_a_corregir_Click(object sender, EventArgs e) { int tesina_id = Convert.ToInt32(hidden_tesina_id.Value); using (HabProfDBContainer cxt = new HabProfDBContainer()) { Tesina t = cxt.Tesinas.FirstOrDefault(tt => tt.tesina_id == tesina_id); Estado_tesina et = cxt.Estados_tesinas.FirstOrDefault(ee => ee.estado_tesina_estado == "Observada"); string descripcion = string.Empty; descripcion = descripcion + (opcion_1.Checked ? opcion_1.Text : ""); descripcion = descripcion + (opcion_2.Checked ? opcion_2.Text : ""); descripcion = descripcion + (opcion_3.Checked ? opcion_3.Text : ""); Historial_estado he = new Historial_estado() { estado_tesina_id = et.estado_tesina_id, tesina_id = tesina_id, historial_tesina_fecha = DateTime.Now, historial_tesina_descripcion = descripcion//tb_descripcion_rechazo.Value }; t.estado_tesis_id = et.estado_tesina_id; cxt.Historial_estados.Add(he); Envio_mail em_director = new Envio_mail() { persona_id = t.Director.Persona.persona_id, envio_email_destino = t.Director.Persona.persona_email, envio_fecha_hora = DateTime.Now, envio_respuesta_clave = "no se usa", envio_tipo = MiEmail.tipo_mail.notificacion_correcciones_tesina.ToString() }; cxt.Envio_mails.Add(em_director); Envio_mail em_tesista = new Envio_mail() { persona_id = t.Tesista.Persona.persona_id, envio_email_destino = t.Tesista.Persona.persona_email, envio_fecha_hora = DateTime.Now, envio_respuesta_clave = "no se usa", envio_tipo = MiEmail.tipo_mail.notificacion_correcciones_tesina.ToString() }; cxt.Envio_mails.Add(em_tesista); MiEmail me_director = new MiEmail(em_director, t); MiEmail me_tesista = new MiEmail(em_tesista, t); me_director.Enviar_mail(); me_tesista.Enviar_mail(); if (t.Codirector != null) { Envio_mail em_codirector = new Envio_mail() { persona_id = t.Codirector.Persona.persona_id, envio_email_destino = t.Codirector.Persona.persona_email, envio_fecha_hora = DateTime.Now, envio_respuesta_clave = "no se usa", envio_tipo = MiEmail.tipo_mail.notificacion_correcciones_tesina.ToString() }; cxt.Envio_mails.Add(em_codirector); MiEmail me_codirector = new MiEmail(em_codirector, t); me_codirector.Enviar_mail(); } cxt.SaveChanges(); //tb_descripcion_rechazo.Value = ""; ObtenerTesinas(); } }
protected void btn_subir_archivo_Click(object sender, EventArgs e) { if (file_tesis.HasFile) { try { string directorio = Server.MapPath("~/Archivos/Tesinas/" + hidden_tesina_id.Value + "/"); if (!Directory.Exists(directorio)) { Directory.CreateDirectory(directorio); } string extencion_origen = Path.GetExtension(file_tesis.FileName); string path_save_file = directorio + "presentado" + extencion_origen; file_tesis.SaveAs(path_save_file); using (HabProfDBContainer cxt = new HabProfDBContainer()) { int tesina_id = Convert.ToInt32(hidden_tesina_id.Value); Tesina t = cxt.Tesinas.FirstOrDefault(tt => tt.tesina_id == tesina_id); Estado_tesina et = cxt.Estados_tesinas.FirstOrDefault(ee => ee.estado_tesina_estado == "Entregada"); Historial_estado he = new Historial_estado() { estado_tesina_id = et.estado_tesina_id, tesina_id = tesina_id, historial_tesina_fecha = DateTime.Now, historial_tesina_descripcion = "Se entregó satisfactoriamente la tesina para ser evaluada por el director." }; t.estado_tesis_id = et.estado_tesina_id; cxt.Historial_estados.Add(he); Envio_mail em_director = new Envio_mail() { persona_id = t.Director.Persona.persona_id, envio_email_destino = t.Director.Persona.persona_email, envio_fecha_hora = DateTime.Now, envio_respuesta_clave = "Archivos/Tesinas/" + hidden_tesina_id.Value + "/presentado" + extencion_origen, envio_tipo = MiEmail.tipo_mail.notificacion_entrega_archivo_tesina.ToString() }; cxt.Envio_mails.Add(em_director); Envio_mail em_tesista = new Envio_mail() { persona_id = t.Tesista.Persona.persona_id, envio_email_destino = t.Tesista.Persona.persona_email, envio_fecha_hora = DateTime.Now, envio_respuesta_clave = "Archivos/Tesinas/" + hidden_tesina_id.Value + "/presentado" + extencion_origen, envio_tipo = MiEmail.tipo_mail.notificacion_entrega_archivo_tesina.ToString() }; cxt.Envio_mails.Add(em_tesista); MiEmail me_director = new MiEmail(em_director, t); MiEmail me_tesista = new MiEmail(em_tesista, t); me_director.Enviar_mail(); me_tesista.Enviar_mail(); if (t.Codirector != null) { Envio_mail em_codirector = new Envio_mail() { persona_id = t.Codirector.Persona.persona_id, envio_email_destino = t.Codirector.Persona.persona_email, envio_fecha_hora = DateTime.Now, envio_respuesta_clave = "Archivos/Tesinas/" + hidden_tesina_id.Value + "/presentado" + extencion_origen, envio_tipo = MiEmail.tipo_mail.notificacion_entrega_archivo_tesina.ToString() }; cxt.Envio_mails.Add(em_codirector); MiEmail me_codirector = new MiEmail(em_codirector, t); me_codirector.Enviar_mail(); } cxt.SaveChanges(); ObtenerTesinas(); } } catch (Exception ex) { // status_label.Text = "Ocurrio un error y no se pudo subir el archivo. Error: " + ex.Message; // div_status_file.Attributes.Add("class", "alert alert-danger"); } } else { //status_label.Text = "Debe seleccionar un archivo!"; //div_status_file.Attributes.Add("class", "alert alert-danger"); } }
protected void btn_aceptar_eliminacion_Click(object sender, EventArgs e) { int id_tesina = Convert.ToInt32(id_item_por_eliminar.Value); using (HabProfDBContainer cxt = new HabProfDBContainer()) { Tesina tesina = cxt.Tesinas.FirstOrDefault(tt => tt.tesina_id == id_tesina); if (tesina.Estado.estado_tesina_estado == "Iniciada") { //Enviar correos a tesista y director sobre eliminacion de la tesis Envio_mail em_director = new Envio_mail() { envio_email_destino = tesina.Director.Persona.persona_email, envio_fecha_hora = DateTime.Now, envio_respuesta_clave = "", envio_tipo = MiEmail.tipo_mail.notificacion_eliminacion_tesina_director.ToString(), persona_id = tesina.Director.Persona.persona_id }; cxt.Envio_mails.Add(em_director); Envio_mail em_tesista = new Envio_mail() { envio_email_destino = tesina.Tesista.Persona.persona_email, envio_fecha_hora = DateTime.Now, envio_respuesta_clave = "", envio_tipo = MiEmail.tipo_mail.notificacion_eliminacion_tesina_tesista.ToString(), persona_id = tesina.Tesista.Persona.persona_id }; cxt.Envio_mails.Add(em_tesista); MiEmail mail_director = new MiEmail(em_director, tesina); MiEmail mail_tesista = new MiEmail(em_tesista, tesina); mail_director.Enviar_mail(); mail_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_eliminacion_tesina_director.ToString() }; cxt.Envio_mails.Add(em_codirector); MiEmail me_codirector = new MiEmail(em_codirector, tesina); me_codirector.Enviar_mail(); } cxt.Historial_estados.RemoveRange(tesina.Historial_estados); cxt.Tesinas.Remove(tesina); cxt.SaveChanges(); MessageBox.Show(this, "Se ha eliminado correctamente la tesina.", MessageBox.Tipo_MessageBox.Success); ObtenerTesinas(); } else { MessageBox.Show(this, "No se puede eliminar una tesina cuyo estado sea posterior al de iniciada", MessageBox.Tipo_MessageBox.Danger); } } ObtenerTesinas(); }
protected void btn_guardar_ServerClick(object sender, EventArgs e) { if (this.IsValid) { bool director_nuevo = false; Persona usuario = Session["UsuarioLogueado"] as Persona; int id_director = Convert.ToInt32(hidden_id_director_editar.Value); Persona p_director = null; Director director = null; using (HabProfDBContainer cxt = new HabProfDBContainer()) { int dni = 0; int.TryParse(tb_dni_director.Value, out dni); if (id_director != 0) { //abrio por editar director y cambio el DNI, obtengo el director a editar director = cxt.Directores.Include("Persona").FirstOrDefault(pp => pp.director_id == id_director); p_director = director.Persona; } else { p_director = cxt.Personas.FirstOrDefault(pp => pp.persona_dni == dni); if (p_director != null) { director = p_director.Director; } } //agrego o actualizo el director if (p_director == null) { p_director = new Persona(); p_director.persona_nomyap = tb_nombre_director.Value; p_director.persona_dni = dni; p_director.licenciatura_id = usuario.licenciatura_id; p_director.persona_email = tb_email.Value; p_director.persona_domicilio = tb_domicilio.Value; p_director.persona_telefono = tb_telefono.Value; p_director.persona_usuario = tb_usuario.Value; p_director.persona_clave = Cripto.Encriptar(tb_dni_director.Value); p_director.persona_estilo = "Slate"; cxt.Personas.Add(p_director); } else { p_director.persona_nomyap = tb_nombre_director.Value; p_director.persona_dni = dni; p_director.persona_email = tb_email.Value; p_director.persona_domicilio = tb_domicilio.Value; p_director.persona_telefono = tb_telefono.Value; p_director.persona_usuario = tb_usuario.Value; if (chk_cambiar_clave.Checked) { p_director.persona_clave = Cripto.Encriptar(tb_contraseña.Value); } } if (director == null) { //no existe hago un insert director = new Director() { Persona = p_director }; cxt.Directores.Add(director); director_nuevo = true; } try { cxt.SaveChanges(); tb_dni_director.Value = string.Empty; tb_domicilio.Value = string.Empty; tb_email.Value = string.Empty; tb_nombre_director.Value = string.Empty; tb_telefono.Value = string.Empty; tb_usuario.Value = string.Empty; tb_contraseña.Value = string.Empty; hidden_id_director_editar.Value = "0"; if (director_nuevo) { Envio_mail registro_envio_mail = new Envio_mail() { persona_id = p_director.persona_id, envio_fecha_hora = DateTime.Now, envio_email_destino = p_director.persona_email, //de haber mas de un destinatario separar por coma Ej: mail + "," + mail2 + "," + mail3 envio_respuesta_clave = Guid.NewGuid().ToString(), envio_tipo = MiEmail.tipo_mail.alta_director.ToString() }; cxt.Envio_mails.Add(registro_envio_mail); cxt.SaveChanges(); MiEmail mail = new MiEmail(registro_envio_mail); mail.Enviar_mail(); } MessageBox.Show(this, "Se guardó correctamente el director!", MessageBox.Tipo_MessageBox.Success, "Exito!"); } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx) { Exception raise = dbEx; foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { string message = string.Format("{0}:{1}", validationErrors.Entry.Entity.ToString(), validationError.ErrorMessage); // raise a new exception nesting // the current instance as InnerException raise = new InvalidOperationException(message, raise); } } MessageBox.Show(this, raise.Message); } } ObtenerDirectores(); } else { string script = "<script language=\"javascript\" type=\"text/javascript\">$(document).ready(function() { $('#agregar_director').modal('show')});</script>"; ScriptManager.RegisterStartupScript(Page, this.GetType(), "ShowPopUp", script, false); } }
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"); } } }