コード例 #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
ファイル: admin_mesas.aspx.cs プロジェクト: jfberton/HabProf
        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();
        }
コード例 #3
0
ファイル: MiEmail.cs プロジェクト: jfberton/HabProf
 public MiEmail(Envio_mail mail, Tesina t)
 {
     using (HabProfDBContainer cxt = new Aplicativo.HabProfDBContainer())
     {
         Persona p = cxt.Personas.FirstOrDefault(pp => pp.persona_id == mail.persona_id);
         Tipo_mail               = (tipo_mail)Enum.Parse(typeof(tipo_mail), mail.envio_tipo);
         Smtp_client             = p.Licenciatura.Servidor.servidor_smtp_host;
         Smtp_puerto             = p.Licenciatura.Servidor.servidor_smtp_port;
         Persona_nombre          = p.persona_nomyap;
         Persona_usuario         = p.persona_usuario;
         Persona_pass            = Cripto.Desencriptar(p.persona_clave);
         Url_respuesta           = ConfigurationManager.AppSettings["direccion_localhost_raiz"] + "landing_mail.aspx?tipo_mail=" + mail.envio_tipo + "&clave=" + mail.envio_respuesta_clave;
         Credenciales_mail       = p.Licenciatura.licenciatura_email;
         Credenciales_contraseña = p.Licenciatura.licenciatura_email_clave;
         Destinatarios           = new List <string>(mail.envio_email_destino.Replace(" ", "").Split(','));
         //datos extra para el envio de mails
         Director_mail                = t.Director.Persona.persona_email;
         Director_nombre              = t.Director.Persona.persona_nomyap;
         Codirector_mail              = t.Codirector != null ? t.Codirector.Persona.persona_email : "-";
         Codirector_nombre            = t.Codirector != null ? t.Codirector.Persona.persona_nomyap : "-";
         Tesista_mail                 = t.Tesista.Persona.persona_email;
         Tesista_nombre               = t.Tesista.Persona.persona_nomyap;
         Tesis_fecha_limite           = t.tesina_plan_fch_presentacion.AddMonths(t.tesina_plan_duracion_meses - 1).ToShortDateString();
         Tesis_periodo_notificaciones = t.tesina_plan_aviso_meses.ToString();
         Tesis_tema            = t.tesina_tema;
         Tesis_Url_archivo     = ConfigurationManager.AppSettings["direccion_localhost_raiz"] + mail.envio_respuesta_clave;
         Tesis_meses_restantes = Math.Abs((t.tesina_plan_fch_presentacion.AddMonths(t.tesina_plan_duracion_meses).Month - DateTime.Today.Month) + 12 * (t.tesina_plan_fch_presentacion.AddMonths(t.tesina_plan_duracion_meses).Year - DateTime.Today.Year)) - 1;
     }
 }
コード例 #4
0
        protected void btn_editar_ServerClick(object sender, EventArgs e)
        {
            using (var cxt = new HabProfDBContainer())
            {
                string id_tesina = ((HtmlButton)sender).Attributes["data-id"];

                int    id_tesina_int = Convert.ToInt32(id_tesina);
                Tesina t             = cxt.Tesinas.FirstOrDefault(tt => tt.tesina_id == id_tesina_int);

                if (t.Estado.estado_tesina_estado == "Iniciada")
                {
                    Response.Redirect("~/Aplicativo/admin_tesina.aspx?t=" + id_tesina);
                }
                else
                {
                    MessageBox.Show(this, "No se puede editar la tesina en un estado distinto a Iniciada", MessageBox.Tipo_MessageBox.Danger);
                }
            }
        }
コード例 #5
0
ファイル: admin_mesa.aspx.cs プロジェクト: jfberton/HabProf
        protected void btn_aceptar_seleccion_tesina_Click(object sender, EventArgs e)
        {
            List <item_tesina> items_seleccionados  = new List <item_tesina>();
            string             texto_para_el_hidden = string.Empty;

            using (HabProfDBContainer cxt = new HabProfDBContainer())
            {
                foreach (GridViewRow fila in gv_seleccionar_tesinas.Rows)
                {
                    CheckBox chk = ((CheckBox)fila.Cells[3].Controls[1]);
                    if (chk.Checked)
                    {
                        int    tesina_id = Convert.ToInt32(chk.AccessKey);
                        Tesina t         = cxt.Tesinas.FirstOrDefault(tt => tt.tesina_id == tesina_id);
                        items_seleccionados.Add(new item_tesina()
                        {
                            tesina_id       = t.tesina_id,
                            tesina_tema     = t.tesina_tema,
                            tesina_director = t.Director.Persona.persona_nomyap,
                            tesina_tesista  = t.Tesista.Persona.persona_nomyap
                        });

                        texto_para_el_hidden = texto_para_el_hidden + chk.AccessKey + ",";
                    }
                }
            }


            hidden_tesinas_seleccionadas.Value = texto_para_el_hidden;

            if (items_seleccionados.Count > 0)
            {
                gv_tesinas_seleccionadas.DataSource = items_seleccionados;
                gv_tesinas_seleccionadas.DataBind();
            }
            else
            {
                gv_tesinas_seleccionadas.DataSource = null;
                gv_tesinas_seleccionadas.DataBind();
            }
        }
コード例 #6
0
        private bool VerificarTesina(Tesina t)
        {
            bool ret = false;

            if (rb_grupo.Checked)
            {
                if (ddl_grupos.SelectedValue == "Todos los grupos")
                {
                    ret = true;
                }
                else
                {
                    int grupo            = Convert.ToInt32(ddl_grupos.SelectedValue.Substring(0, 2));
                    int categoria_tesina = Convert.ToInt32(t.tesina_categoria.Substring(0, 4));
                    if (categoria_tesina >= grupo * 100 && categoria_tesina < (grupo + 1) * 100)
                    {
                        ret = true;
                    }
                }
            }
            else
            {
                if (ddl_categorias.SelectedValue == "Todas las categorias")
                {
                    ret = true;
                }
                else
                {
                    if (ddl_categorias.SelectedItem.Text == t.tesina_categoria)
                    {
                        ret = true;
                    }
                }
            }

            return(ret);
        }
コード例 #7
0
        protected void btn_ver_ServerClick(object sender, EventArgs e)
        {
            int id_tesina = Convert.ToInt32(((HtmlButton)sender).Attributes["data-id"]);

            if (id_tesina != 0)
            {
                using (HabProfDBContainer cxt = new HabProfDBContainer())
                {
                    hidden_tesina_id.Value = id_tesina.ToString();
                    Tesina tesina = cxt.Tesinas.FirstOrDefault(tt => tt.tesina_id == id_tesina);

                    lbl_alta.Text                    = tesina.tesina_plan_fch_presentacion.ToShortDateString();
                    lbl_calificacion.Text            = tesina.tesina_calificacion == null ? "-" : tesina.tesina_calificacion.ToString();
                    lbl_calificacion_director.Text   = tesina.tesina_calificacion_director == null ? "-" : tesina.tesina_calificacion_director.ToString();
                    lbl_calificacion_codirector.Text = tesina.tesina_calificacion_codirector == null ? "-" : tesina.tesina_calificacion_codirector.ToString();
                    lbl_descripcion.Text             = tesina.tesina_descripcion;
                    lbl_director.Text                = tesina.Director.Persona.persona_nomyap;
                    lbl_codirector.Text              = tesina.Codirector != null ? tesina.Codirector.Persona.persona_nomyap : " - ";
                    lbl_duracion.Text                = tesina.tesina_plan_duracion_meses.ToString() + " meses.";
                    lbl_estado.Text                  = tesina.Estado.estado_tesina_estado;
                    lbl_observaciones_estado.Text    = tesina.Historial_estados.FirstOrDefault(hhee => hhee.historial_tesina_id == tesina.Historial_estados.Max(hist => hist.historial_tesina_id)).historial_tesina_descripcion;
                    lbl_periodo_notificaciones.Text  = tesina.tesina_plan_aviso_meses.ToString() + " meses.";
                    lbl_tema.Text                    = tesina.tesina_tema;
                    lbl_tesista.Text                 = tesina.Tesista.Persona.persona_nomyap;
                    string archivo  = Server.MapPath("~/Archivos/Tesinas/" + hidden_tesina_id.Value + "/presentado.pdf");
                    string archivo1 = Server.MapPath("~/Archivos/Tesinas/" + hidden_tesina_id.Value + "/presentado.doc");
                    string archivo2 = Server.MapPath("~/Archivos/Tesinas/" + hidden_tesina_id.Value + "/presentado.docx");
                    if (File.Exists(archivo))
                    {
                        lbl_archivo_subido.HRef      = "~/Archivos/Tesinas/" + hidden_tesina_id.Value + "/presentado.pdf";
                        lbl_archivo_subido.InnerText = "Archivo presentado";
                        lbl_archivo_subido.Target    = "_blank";
                    }
                    else
                    {
                        if (File.Exists(archivo1))
                        {
                            lbl_archivo_subido.HRef      = "~/Archivos/Tesinas/" + hidden_tesina_id.Value + "/presentado.doc";
                            lbl_archivo_subido.InnerText = "Archivo presentado";
                            lbl_archivo_subido.Target    = "_blank";
                        }
                        else
                        {
                            if (File.Exists(archivo2))
                            {
                                lbl_archivo_subido.HRef      = "~/Archivos/Tesinas/" + hidden_tesina_id.Value + "/presentado.docx";
                                lbl_archivo_subido.InnerText = "Archivo presentado";
                                lbl_archivo_subido.Target    = "_blank";
                            }
                            else
                            {
                                lbl_archivo_subido.HRef      = "#";
                                lbl_archivo_subido.InnerText = "Sin presentaciones";
                                lbl_archivo_subido.Target    = "_self";
                            }
                        }
                    }

                    foreach (Jurado jurado in tesina.Jueces)
                    {
                        lbl_jueces_tesina_visualizacion.Text = lbl_jueces_tesina_visualizacion.Text + jurado.Persona.persona_nomyap + "; ";
                    }

                    var historial = (from he in tesina.Historial_estados
                                     select new
                    {
                        fecha = he.historial_tesina_fecha,
                        estado = he.Estado.estado_tesina_estado,
                        observacion_completa = he.historial_tesina_descripcion
                    }).OrderByDescending(hhee => hhee.fecha).ToList();

                    var historial_con_observacion_recortada = (from he in historial
                                                               select new
                    {
                        fecha = he.fecha,
                        estado = he.estado,
                        observacion_completa = he.observacion_completa,
                        observacion_recortada = he.observacion_completa.Length > 40 ? he.observacion_completa.Substring(0, 40) + "..." : he.observacion_completa
                    }).ToList();

                    gv_historial.DataSource = historial_con_observacion_recortada;
                    gv_historial.DataBind();

                    string script = "<script language=\"javascript\"  type=\"text/javascript\">$(document).ready(function() { $('#panel_ver_tesina').modal('show')});</script>";
                    ScriptManager.RegisterStartupScript(Page, this.GetType(), "ShowPopUp", script, false);
                }
            }
        }
コード例 #8
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();
            }
        }
コード例 #9
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();
            }
        }
コード例 #10
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();
            }
        }
コード例 #11
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");
            }
        }
コード例 #12
0
        private void Mostrar_botones_segun_estado()
        {
            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);

                btn_realizar_entrega.Visible       = false;
                btn_devolver_para_corregir.Visible = false;
                btn_lista_para_presentar.Visible   = false;
                btn_prorroga.Visible = false;

                switch (t.Estado.estado_tesina_estado)
                {
                case "Iniciada":
                    if (Session["Perfil"].ToString() != "Director")
                    {
                        btn_realizar_entrega.Visible = true;
                    }
                    break;

                case "Entregada":
                    if (Session["Perfil"].ToString() != "Tesista")
                    {
                        btn_devolver_para_corregir.Visible = true;
                        btn_lista_para_presentar.Visible   = true;
                    }
                    break;

                case "Observada":
                    if (Session["Perfil"].ToString() != "Director")
                    {
                        btn_realizar_entrega.Visible = true;
                    }
                    break;

                case "Lista para presentar":
                    //if (Session["Perfil"].ToString() == "Administrador")
                    //{
                    //    btn_aprobar.Visible = true;
                    //    btn_desaprobar.Visible = true;
                    //}
                    break;

                case "Vencida":
                    if (Session["Perfil"].ToString() == "Administrador")
                    {
                        btn_prorroga.Visible = true;
                    }
                    break;

                case "Prorrogar":
                    if (Session["Perfil"].ToString() != "Director")
                    {
                        btn_realizar_entrega.Visible = true;
                    }
                    break;

                case "Aprobada":
                    break;

                case "Desaprobada":
                    break;

                default:
                    break;
                }
            }
        }
コード例 #13
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();
        }
コード例 #14
0
ファイル: admin_mesa.aspx.cs プロジェクト: jfberton/HabProf
        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");
                }
            }
        }
コード例 #15
0
ファイル: admin_mesas.aspx.cs プロジェクト: jfberton/HabProf
        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);
            }
        }