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(); } } } }
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!!"); } } }
protected void btn_guardar_nuevo_mail_ServerClick(object sender, EventArgs e) { this.Validate("email"); if (this.IsValid) { Persona p = Session["UsuarioLogueado"] as Persona; using (HabProfDBContainer cxt = new HabProfDBContainer()) { Persona p_cxt = cxt.Personas.FirstOrDefault(pp => pp.persona_id == p.persona_id); p_cxt.persona_email = tb_email.Value; p_cxt.persona_email_validado = false; cxt.SaveChanges(); //cargo el nuevo mail en la ventana y lo seteo como no validado lbl_email.Text = p_cxt.persona_email; lbl_validado.Text = "Sin validar"; lbl_validado.ToolTip = "No va a poder recuperar la contraseña si no tiene validado su correo"; lbl_correo_a_editar.Text = p_cxt.persona_email; p_validado_mail_editar.Attributes["class"] = "text-danger"; lbl_estado_mail_a_editar.Text = "sin validar"; lbl_validado.ForeColor = Color.DarkRed; lnk_enviar_validacion.Visible = true; Enviar_validacion(); } } else { string script = "<script language=\"javascript\" type=\"text/javascript\">$(document).ready(function() { $('#modificar_mail').modal('show')});</script>"; ScriptManager.RegisterStartupScript(Page, this.GetType(), "ShowPopUp", script, false); } }
protected void btn_aceptar_eliminacion_Click(object sender, EventArgs e) { int id_tesista = Convert.ToInt32(id_item_por_eliminar.Value); using (HabProfDBContainer cxt = new HabProfDBContainer()) { Tesista tesista = cxt.Tesistas.FirstOrDefault(pp => pp.tesista_id == id_tesista); tesista.tesista_fecha_baja = DateTime.Today; if ( (tesista.Persona.Administrador == null || tesista.Persona.Administrador.administrador_fecha_baja != null) && //no tiene el perfil o esta dado de baja (tesista.Persona.Director == null || tesista.Persona.Director.director_fecha_baja != null) && //no tiene el perfil o esta dado de baja (tesista.Persona.Jurado == null || tesista.Persona.Jurado.juez_fecha_baja != null) //no tiene el perfil o esta dado de baja ) { tesista.Persona.persona_usuario = ""; tesista.Persona.persona_clave = ""; } cxt.SaveChanges(); MessageBox.Show(this, "Se ha inhabilitado correctamente al tesista " + tesista.Persona.persona_nomyap, MessageBox.Tipo_MessageBox.Success); } ObtenerTesistas(); }
protected void btn_aceptar_eliminacion_Click(object sender, EventArgs e) { int id_director = Convert.ToInt32(id_item_por_eliminar.Value); using (HabProfDBContainer cxt = new HabProfDBContainer()) { Director director = cxt.Directores.FirstOrDefault(pp => pp.director_id == id_director); if (director.Tesinas.Count == 0) { director.director_fecha_baja = DateTime.Today; if ( (director.Persona.Administrador == null || director.Persona.Administrador.administrador_fecha_baja != null) && //no tiene el perfil o esta dado de baja (director.Persona.Tesista == null || director.Persona.Tesista.tesista_fecha_baja != null) && //no tiene el perfil o esta dado de baja (director.Persona.Jurado == null || director.Persona.Jurado.juez_fecha_baja != null) //no tiene el perfil o esta dado de baja ) { director.Persona.persona_usuario = ""; director.Persona.persona_clave = ""; } cxt.SaveChanges(); MessageBox.Show(this, "Se ha eliminado correctamente al director " + director.Persona.persona_nomyap, MessageBox.Tipo_MessageBox.Success); } else { MessageBox.Show(this, "No se puede eliminar el director " + director.Persona.persona_nomyap + " el mismo tiene tesinas asociadas. ", MessageBox.Tipo_MessageBox.Warning); } } ObtenerDirectores(); }
protected void btn_aceptar_eliminacion_Click(object sender, EventArgs e) { int id_mesa = Convert.ToInt32(id_item_por_eliminar.Value); using (HabProfDBContainer cxt = new HabProfDBContainer()) { Mesa mesa = cxt.Mesas.FirstOrDefault(pp => pp.mesa_id == id_mesa); if (mesa.mesa_estado == "Generada") { 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); } cxt.Mesas.Remove(mesa); cxt.SaveChanges(); MessageBox.Show(this, "Se ha eliminado correctamente la mesa", MessageBox.Tipo_MessageBox.Success); } else { MessageBox.Show(this, "No se puede eliminar una mesa que tenga estado distinta de Generada", MessageBox.Tipo_MessageBox.Danger); } } ObtenerMesas(); }
protected void btn_ver_ServerClick(object sender, EventArgs e) { using (HabProfDBContainer cxt = new HabProfDBContainer()) { int id_mesa = Convert.ToInt32(((Button)sender).CommandArgument); Mesa mesa = cxt.Mesas.FirstOrDefault(pp => pp.mesa_id == id_mesa); if (mesa != null) { lbl_estado.Text = mesa.mesa_estado; lbl_carrera.Text = mesa.mesa_codigo_carrera.ToString(); lbl_plan.Text = mesa.mesa_codigo_plan.ToString(); lbl_materia.Text = mesa.mesa_codigo_materia.ToString(); lbl_ver_mesa_fecha.Text = mesa.mesa_fecha.ToShortDateString(); var jurados = (from j in mesa.Jueces select new { juez_persona_nomyap = j.Persona.persona_nomyap, juez_persona_dni = j.Persona.persona_dni, juez_persona_email = j.Persona.persona_email }).ToList(); var tesinas = (from t in mesa.Tesinas select t).ToList(); //si esta en estado generada debo eliminar las notas que pueden llegar a tener las tesinas, no se porque pero pasó if (mesa.mesa_estado == "Generada") { foreach (Tesina t in mesa.Tesinas) { t.tesina_calificacion = null; t.tesina_calificacion_director = null; t.tesina_calificacion_codirector = null; cxt.SaveChanges(); } } var tesinas_para_grilla = (from t in tesinas select new { tesina_tema = t.tesina_tema, tesina_director = t.Director.Persona.persona_nomyap, tesina_tesista = t.Tesista.Persona.persona_nomyap, tesina_codirector = t.Codirector == null ? "-" : t.Codirector.Persona.persona_nomyap, tesina_nota = t.tesina_calificacion, tesina_nota_director = t.tesina_calificacion_director, tesina_nota_codirector = t.tesina_calificacion_codirector == null ? "-" : t.tesina_calificacion_codirector.ToString() }); gv_jurados.DataSource = jurados; gv_jurados.DataBind(); gv_tesinas.DataSource = tesinas_para_grilla; gv_tesinas.DataBind(); string script = "<script language=\"javascript\" type=\"text/javascript\">$(document).ready(function() { $('#panel_ver_mesa').modal('show')});</script>"; ScriptManager.RegisterStartupScript(Page, this.GetType(), "ShowPopUp", script, false); } } }
protected void btn_habilitar_tesista_ServerClick(object sender, EventArgs e) { using (HabProfDBContainer cxt = new HabProfDBContainer()) { int id_tesista = Convert.ToInt32(((HtmlButton)sender).Attributes["data-id"]); Tesista tesista = cxt.Tesistas.FirstOrDefault(pp => pp.tesista_id == id_tesista); if (tesista != null) { tesista.tesista_fecha_baja = null; cxt.SaveChanges(); MessageBox.Show(this, "Se habilitó correctamente al tesista " + tesista.Persona.persona_nomyap, MessageBox.Tipo_MessageBox.Success); } } ObtenerTesistas(); }
protected void changeStyleButton_Click(object sender, EventArgs e) { string estilo = ((LinkButton)sender).Text; using (HabProfDBContainer cxt = new HabProfDBContainer()) { Persona admin = Session["UsuarioLogueado"] as Persona; admin.persona_estilo = estilo; Persona admin_cxt = cxt.Personas.FirstOrDefault(pp => pp.persona_id == admin.persona_id); //actualizo el estilo admin_cxt.persona_estilo = estilo; cxt.SaveChanges(); //actualizo el usuario de la session Session["UsuarioLogueado"] = admin_cxt; ((Aplicativo.Site1) this.Master).RefrescarEstilo(); } }
protected void btn_eliminacion_definitiva_Click(object sender, EventArgs e) { int id_tesista = Convert.ToInt32(id_item_por_eliminar_definitiva.Value); using (HabProfDBContainer cxt = new HabProfDBContainer()) { try { Tesista tesista = cxt.Tesistas.FirstOrDefault(pp => pp.tesista_id == id_tesista); if (tesista.Tesina != null) { MessageBox.Show(this, "No se puede eliminar un tesista que posee tesina asociada!"); } else { tesista.tesista_baja_definitiva = DateTime.Today; cxt.SaveChanges(); MessageBox.Show(this, "Se ha eliminado el tesista", MessageBox.Tipo_MessageBox.Success); } } 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, MessageBox.Tipo_MessageBox.Danger, "Ups! ocurrio un error al guardar los cambios"); } } ObtenerTesistas(); }
/// <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_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_guardar_cerrar_mesa_Click(object sender, EventArgs e) { Validate("cerrar"); if (IsValid) { using (HabProfDBContainer cxt = new HabProfDBContainer()) { int mesa_id = Convert.ToInt32(hidden_cerrar_mesa_id.Value); Mesa mesa = cxt.Mesas.FirstOrDefault(mm => mm.mesa_id == mesa_id); mesa.mesa_estado = "Cerrada"; foreach (GridViewRow fila in gv_cerrar_mesa_tesinas.Rows) { TextBox calificacion_tesina = ((TextBox)fila.Cells[3].Controls[1]); TextBox calificacion_director_tesina = ((TextBox)fila.Cells[4].Controls[1]); TextBox calificacion_codirector_tesina = ((TextBox)fila.Cells[5].Controls[1]); //DropDownList estado_final_tesina = ((DropDownList)fila.Cells[5].Controls[1]); int tesina_id = Convert.ToInt32(calificacion_tesina.AccessKey); Tesina t = cxt.Tesinas.FirstOrDefault(tt => tt.tesina_id == tesina_id); t.tesina_calificacion = Convert.ToInt16(calificacion_tesina.Text); t.tesina_calificacion_director = Convert.ToInt16(calificacion_director_tesina.Text); if (t.Codirector != null) { t.tesina_calificacion_codirector = Convert.ToInt16(calificacion_codirector_tesina.Text); } string estado_final = t.tesina_calificacion >= 6 ? "Aprobada" : "Desaprobada"; Estado_tesina et = cxt.Estados_tesinas.FirstOrDefault(eett => eett.estado_tesina_estado == estado_final); t.estado_tesis_id = et.estado_tesina_id; foreach (Jurado jurado in mesa.Jueces) { t.Jueces.Add(jurado); } Historial_estado he = new Historial_estado() { estado_tesina_id = et.estado_tesina_id, historial_tesina_descripcion = "Estado final de la evaluación", historial_tesina_fecha = DateTime.Now, tesina_id = t.tesina_id }; cxt.Historial_estados.Add(he); } cxt.SaveChanges(); ObtenerMesas(); MessageBox.Show(this, "Se cerró correctamente la mesa.", MessageBox.Tipo_MessageBox.Success); } } else { string script = "<script language=\"javascript\" type=\"text/javascript\">$(document).ready(function() { $('#panel_cerrar_mesa').modal('show')});</script>"; ScriptManager.RegisterStartupScript(Page, this.GetType(), "ShowPopUp", script, false); } }
private void RevisarCrearPrimerosDatos() { using (HabProfDBContainer cxt = new Aplicativo.HabProfDBContainer()) { if (cxt.Personas.Count() == 0) { Servidor_de_correo servidor0 = new Servidor_de_correo() { servidor_nombre = "Hotmail", servidor_smtp_host = "smtp.live.com", servidor_smtp_port = 25, servidor_enable_ssl = true }; Servidor_de_correo servidor1 = new Servidor_de_correo() { servidor_nombre = "Outlook", servidor_smtp_host = "smtp.live.com", servidor_smtp_port = 25, servidor_enable_ssl = true }; Servidor_de_correo servidor2 = new Servidor_de_correo() { servidor_nombre = "Live", servidor_smtp_host = "smtp.live.com", servidor_smtp_port = 25, servidor_enable_ssl = true }; Servidor_de_correo servidor3 = new Servidor_de_correo() { servidor_nombre = "Gmail", servidor_smtp_host = "smtp.gmail.com", servidor_smtp_port = 587, servidor_enable_ssl = true }; Servidor_de_correo servidor4 = new Servidor_de_correo() { servidor_nombre = "Yahoo!", servidor_smtp_host = "smtp.yahoo.com", servidor_smtp_port = 465, servidor_enable_ssl = true }; cxt.Servidores.Add(servidor0); cxt.Servidores.Add(servidor1); cxt.Servidores.Add(servidor2); cxt.Servidores.Add(servidor3); cxt.Servidores.Add(servidor4); Licenciatura l = new Licenciatura() { licenciatura_nombre = "Licenciatura en Tecnología Educativa", licenciatura_descripcion = "Este Ciclo de Licenciatura se propone brindar una alternativa de formación de grado a aquellos profesores y/o técnicos superiores en áreas referidas en manejo de las tecnologías, interesados en Ia inserción de Ia tecnología educativa en los procesos de formación inicial y continua propios del sistema educativo. Asimismo, resulta una opción para cubrir los espacios de capacitación y actualización que se desarroIIan en las instituciones y organizaciones del sistema socio productivo, tanto de gestión pública como privada.", licenciatura_email = "*****@*****.**", licenciatura_email_clave = "berton_mail", Servidor = servidor3 }; cxt.Licenciaturas.Add(l); Persona p_admin = new Persona() { Licenciatura = l, persona_nomyap = "Administrador", persona_dni = 12345678, persona_email = "*****@*****.**", persona_email_validado = false, persona_domicilio = "un domicilio", persona_telefono = "00000000", persona_usuario = "admin", persona_clave = Cripto.Encriptar("admin"), persona_estilo = "Slate" }; Administrador admin = new Administrador() { Persona = p_admin }; cxt.Personas.Add(p_admin); cxt.Administradores.Add(admin); Persona p_director = new Persona() { Licenciatura = l, persona_nomyap = "director", persona_dni = 23456789, persona_email = "*****@*****.**", persona_email_validado = false, persona_domicilio = "un domicilio", persona_telefono = "00000000", persona_usuario = "dire", persona_clave = Cripto.Encriptar("dire"), persona_estilo = "Slate" }; Director dire = new Director() { Persona = p_director }; cxt.Personas.Add(p_director); cxt.Directores.Add(dire); Persona p_tesista = new Persona() { Licenciatura = l, persona_nomyap = "Juan José Paso", persona_dni = 28162815, persona_email = "*****@*****.**", persona_email_validado = false, persona_domicilio = "Brasil 335 - Barranqueras", persona_telefono = "03624716146", persona_usuario = "", persona_clave = "", persona_estilo = "Slate" }; Tesista tesista = new Tesista() { Persona = p_tesista, tesista_legajo = "12337/6", tesista_sede = "Resistencia" }; cxt.Personas.Add(p_tesista); cxt.Tesistas.Add(tesista); //Estado inicial Estado_tesina estado_inicial = new Estado_tesina() { estado_tesina_estado = "Iniciada", estado_tesina_descripcion = "Estado inicial, ocurre cuando aprueban el tema y se cargan los valores inciales, director, tesista, fechas de presentación, duración y notificaciones" }; //puede llegar aqui por los estados: // * iniciada // * a corregir // * prorroga Estado_tesina estado_entregada = new Estado_tesina() { estado_tesina_estado = "Entregada", estado_tesina_descripcion = "Ocurre cuando se sube el archivo para la correción del director" }; //llega aqui del estado: // * entregada Estado_tesina estado_a_corregir = new Estado_tesina() { estado_tesina_estado = "Observada", estado_tesina_descripcion = "Ocurre cuando el director o administrador informan sobre correcciones a realizar en la tesina presentada" }; //llega aqui del estado: // * entregada Estado_tesina estado_lista_para_presentar = new Estado_tesina() { estado_tesina_estado = "Lista para presentar", estado_tesina_descripcion = "Ocurre cuando la presentació de la tesina no tiene observaciones y esta lista para su defenza" }; //llega aqui del estado: // * entregada // * a corregir // * prorroga Estado_tesina estado_vencida = new Estado_tesina() { estado_tesina_estado = "Vencida", estado_tesina_descripcion = "Ocurre cuando pasan los plazos establecidos y la tesina no fue aprobada para su defenza" }; //llega aqui del estado: // * vencida Estado_tesina estado_prorrogada = new Estado_tesina() { estado_tesina_estado = "Prorrogar", estado_tesina_descripcion = "Ocurre cuando luego de vencida la tesina, el tesista solicita prorroga, en este estado se vuelven a establecer duración y periodo entre notificaciones" }; //llega aqui del estado: // * lista para presentar Estado_tesina estado_aprobada = new Estado_tesina() { estado_tesina_estado = "Aprobada", estado_tesina_descripcion = "Estado final, en este momento se procede a calificar la tesina y al director" }; //llega aqui del estado: // * lista para presentar Estado_tesina estado_desaprobada = new Estado_tesina() { estado_tesina_estado = "Desaprobada", estado_tesina_descripcion = "Estado final, en este momento se procede a calificar la tesina y al director" }; cxt.Estados_tesinas.Add(estado_inicial); cxt.Estados_tesinas.Add(estado_entregada); cxt.Estados_tesinas.Add(estado_a_corregir); cxt.Estados_tesinas.Add(estado_lista_para_presentar); cxt.Estados_tesinas.Add(estado_vencida); cxt.Estados_tesinas.Add(estado_prorrogada); cxt.Estados_tesinas.Add(estado_aprobada); cxt.Estados_tesinas.Add(estado_desaprobada); Tesina tesis = new Tesina() { Director = dire, Tesista = tesista, Estado = estado_inicial, tesina_descripcion = "politica, importacion, electronico", tesina_tema = "Impacto de las politicas de importación sobre la producción de artículos electronicónicos en la región", tesina_plan_fch_presentacion = Convert.ToDateTime("01/06/2017"), tesina_plan_duracion_meses = 12, tesina_plan_aviso_meses = 3, tesina_categoria = "1300 - VARIOS CAMPOS (Especificar)" }; cxt.Tesinas.Add(tesis); Historial_estado historial = new Historial_estado() { Tesina = tesis, Estado = estado_inicial, historial_tesina_descripcion = "Se inicia el seguimiento de la tesina", historial_tesina_fecha = Convert.ToDateTime("01/06/2017") }; cxt.Historial_estados.Add(historial); 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); } }
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_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_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_importar_Click(object sender, EventArgs e) { this.Validate("director"); if (this.IsValid) { Persona usuario = Session["UsuarioLogueado"] as Persona; foreach (GridViewRow fila in gv_directores.Rows) { int dni = Convert.ToInt32(((HtmlInputText)fila.Cells[0].Controls[1]).Value); Persona p_director = null; Director director = null; using (HabProfDBContainer cxt = new HabProfDBContainer()) { p_director = cxt.Personas.FirstOrDefault(pp => pp.persona_dni == dni); if (p_director != null) { director = p_director.Director; } //Agrego o actualizo la persona if (p_director == null) { p_director = new Persona() { licenciatura_id = usuario.licenciatura_id, persona_nomyap = ((HtmlInputText)fila.Cells[1].Controls[1]).Value, persona_dni = dni, persona_email = ((HtmlInputText)fila.Cells[2].Controls[1]).Value, persona_email_validado = false, persona_domicilio = ((HtmlInputText)fila.Cells[3].Controls[1]).Value, persona_telefono = ((HtmlInputText)fila.Cells[4].Controls[1]).Value, persona_usuario = dni.ToString(), persona_clave = Cripto.Encriptar(dni.ToString()), persona_estilo = "Slate" }; cxt.Personas.Add(p_director); } else { p_director.licenciatura_id = usuario.licenciatura_id; p_director.persona_nomyap = ((HtmlInputText)fila.Cells[1].Controls[1]).Value; p_director.persona_dni = dni; p_director.licenciatura_id = usuario.licenciatura_id; p_director.persona_email = ((HtmlInputText)fila.Cells[2].Controls[1]).Value; p_director.persona_email_validado = false; p_director.persona_domicilio = ((HtmlInputText)fila.Cells[3].Controls[1]).Value; p_director.persona_telefono = ((HtmlInputText)fila.Cells[4].Controls[1]).Value; p_director.persona_usuario = dni.ToString(); p_director.persona_clave = Cripto.Encriptar(dni.ToString()); } //agrego o actualizo el director if (director == null) { //no existe hago un insert director = new Director() { Persona = p_director, }; cxt.Directores.Add(director); } try { cxt.SaveChanges(); gv_directores.DataSource = null; gv_directores.DataBind(); MessageBox.Show(this, "Se guardaron correctamente los directores!", MessageBox.Tipo_MessageBox.Success, "Exito!", "admin_directores.aspx"); } catch (Exception ex) { MessageBox.Show(this, ex.Message, MessageBox.Tipo_MessageBox.Danger); } } } } }
protected void btn_guardar_ServerClick(object sender, EventArgs e) { if (this.IsValid) { Persona usuario = Session["UsuarioLogueado"] as Persona; int id_juez = Convert.ToInt32(hidden_id_juez_editar.Value); Persona p_juez = null; Jurado juez = null; using (HabProfDBContainer cxt = new HabProfDBContainer()) { int dni = 0; int.TryParse(tb_dni_juez.Value, out dni); if (id_juez != 0) { //abrio por editar juez y cambio el DNI, obtengo el juez a editar juez = cxt.Jueces.Include("Persona").FirstOrDefault(pp => pp.juez_id == id_juez); p_juez = juez.Persona; } else { p_juez = cxt.Personas.FirstOrDefault(pp => pp.persona_dni == dni); if (p_juez != null) { juez = p_juez.Jurado; juez.juez_fecha_baja = null; } } //agrego o actualizo el juez if (p_juez == null) { p_juez = new Persona(); p_juez.persona_nomyap = tb_nombre_juez.Value; p_juez.persona_dni = dni; p_juez.licenciatura_id = usuario.licenciatura_id; p_juez.persona_email = tb_email.Value; p_juez.persona_domicilio = tb_domicilio.Value; p_juez.persona_telefono = tb_telefono.Value; p_juez.persona_usuario = ""; p_juez.persona_clave = ""; p_juez.persona_estilo = "Slate"; cxt.Personas.Add(p_juez); } else { p_juez.persona_nomyap = tb_nombre_juez.Value; p_juez.persona_dni = dni; p_juez.persona_email = tb_email.Value; p_juez.persona_domicilio = tb_domicilio.Value; p_juez.persona_telefono = tb_telefono.Value; } if (juez == null) { //no existe hago un insert juez = new Jurado() { Persona = p_juez }; cxt.Jueces.Add(juez); } try { cxt.SaveChanges(); tb_dni_juez.Value = string.Empty; tb_domicilio.Value = string.Empty; tb_email.Value = string.Empty; tb_nombre_juez.Value = string.Empty; tb_telefono.Value = string.Empty; hidden_id_juez_editar.Value = "0"; MessageBox.Show(this, "Se guardó correctamente el jurado!", 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); } } ObtenerJueces(); } else { string script = "<script language=\"javascript\" type=\"text/javascript\">$(document).ready(function() { $('#agregar_juez').modal('show')});</script>"; ScriptManager.RegisterStartupScript(Page, this.GetType(), "ShowPopUp", script, false); } }