Пример #1
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();
            }
        }
Пример #2
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();
            }
        }
Пример #3
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");
            }
        }
Пример #4
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();
        }
Пример #5
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);
            }
        }
Пример #6
0
        protected void btn_crear_mesa_Click(object sender, EventArgs e)
        {
            Validate();
            if (IsValid)
            {
                string str_mesa_id = Request.QueryString["m"];
                int    mesa_id     = 0;
                if (str_mesa_id == null || int.TryParse(str_mesa_id, out mesa_id))
                {
                    using (HabProfDBContainer cxt = new Aplicativo.HabProfDBContainer())
                    {
                        Mesa mesa = new Mesa();
                        if (str_mesa_id == null)
                        {
                            //mesa nueva
                            mesa = new Aplicativo.Mesa();
                            cxt.Mesas.Add(mesa);
                        }
                        else
                        {
                            mesa = cxt.Mesas.FirstOrDefault(mm => mm.mesa_id == mesa_id);
                            //elimino los jueces y tesinas que tenia asignada para cargar los nuevos
                            List <int> id_jueces = mesa.Jueces.Select(jj => jj.juez_id).ToList();
                            foreach (int id_juez in id_jueces)
                            {
                                Jurado j = cxt.Jueces.FirstOrDefault(jj => jj.juez_id == id_juez);
                                mesa.Jueces.Remove(j);
                            }

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

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

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

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

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

                        mesa.mesa_estado = "Generada";

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

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

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

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

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

                        cxt.SaveChanges();

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