Пример #1
0
        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();
                    }
                }
            }
        }
Пример #2
0
        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!!");
                }
            }
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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();
        }
Пример #5
0
        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();
        }
Пример #6
0
        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();
        }
Пример #7
0
        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);
                }
            }
        }
Пример #8
0
        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();
        }
Пример #9
0
        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();
            }
        }
Пример #10
0
        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();
        }
Пример #11
0
        /// <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();
                            }
                        }
                    }
                }
            }
        }
Пример #12
0
        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();
            }
        }
Пример #13
0
        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();
            }
        }
Пример #14
0
        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);
            }
        }
Пример #15
0
        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);
            }
        }
Пример #16
0
        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();
                }
            }
        }
Пример #17
0
        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);
            }
        }
Пример #18
0
        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();
        }
Пример #19
0
        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");
            }
        }
Пример #20
0
        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();
            }
        }
Пример #21
0
        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);
                        }
                    }
                }
            }
        }
Пример #22
0
        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);
            }
        }