Modificar y eliminar participantes

This commit is contained in:
Daniel Cortés
2019-12-12 05:13:49 -03:00
parent 3132ecc900
commit 46f0abf143
4 changed files with 278 additions and 21 deletions

View File

@@ -21,7 +21,7 @@
<div class="col-2 sidebar">
<ul class="nav flex-column">
<li class="nav-item"><a href="/registrar_participante.aspx" class="nav-link">Nuevo Participante</a></li>
<li class="nav-item"><a href="#" class="nav-link">Modificar o Eliminar</a></li>
<li class="nav-item"><a href="/modificar_participante.aspx" class="nav-link">Modificar o Eliminar</a></li>
<li class="nav-item"><a href="#" class="nav-link">Listado de Participantes</a></li>
<li class="nav-item"><asp:LinkButton runat="server" CssClass="nav-link text-danger" OnClick="onCerrarSesionClick">Cerrar Sesion</asp:LinkButton></li>
</ul>

View File

@@ -0,0 +1,78 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/base_page.master" AutoEventWireup="true" CodeFile="modificar_participante.aspx.cs" Inherits="modificar_participante" %>
<asp:Content ContentPlaceHolderID="header" runat="Server">
<title>Modificar Participante</title>
</asp:Content>
<asp:Content ContentPlaceHolderID="content" runat="Server">
<asp:ScriptManager runat="server"></asp:ScriptManager>
<h1>Modificar Participante</h1>
<div class="form-row">
<div class="col-auto">
<asp:Label for="id_box" runat="server">ID:</asp:Label>
</div>
<div class="col-auto">
<asp:TextBox ID="id_box" CssClass="form-control" runat="server" />
</div>
<div class="col-auto">
<asp:Button CssClass="btn btn-primary" Text="Buscar" runat="server" CausesValidation="false" OnClick="OnBuscarClick" />
</div>
</div>
<div class="form-row">
<p class="invalid-message">
<asp:Literal ID="id_error" runat="server" />
</p>
</div>
<asp:Panel ID="form_panel" runat="server" Visible="false">
<div class="form-group">
<asp:Label for="nombre_box" runat="server">Nombre</asp:Label>
<asp:TextBox CssClass="form-control" ID="nombre_box" runat="server" />
<asp:RequiredFieldValidator CssClass="invalid-message" ControlToValidate="nombre_box" ErrorMessage="Debe ingresar el nombre" Display="Dynamic" EnableClientScript="false" runat="server" />
<asp:CustomValidator ID="nombre_validator" CssClass="invalid-message" ControlToValidate="nombre_box" Display="Dynamic" EnableClientScript="false" runat="server" OnServerValidate="ValidateNombre" />
</div>
<div class="form-group">
<asp:Label for="inscripcion_box" runat="server">Fecha Inscripcion</asp:Label>
<asp:TextBox CssClass="form-control" ID="inscripcion_box" type="date" runat="server" />
<asp:RequiredFieldValidator CssClass="invalid-message" ControlToValidate="inscripcion_box" ErrorMessage="Debe ingresar la fecha de inscripcion" Display="Dynamic" EnableClientScript="false" runat="server" />
</div>
<div class="form-group">
<asp:Label for="pga_box" runat="server">Promedio General Acumulado</asp:Label>
<asp:TextBox CssClass="form-control" ID="pga_box" type="number" step="0.01" min="0" max="7" runat="server" />
<asp:RequiredFieldValidator CssClass="invalid-message" ControlToValidate="pga_box" ErrorMessage="Debe ingresar el PGA" Display="Dynamic" EnableClientScript="false" runat="server" />
</div>
<div class="form-group">
<asp:Label for="universidad_select" runat="server">Universidad</asp:Label>
<asp:DropDownList CssClass="form-control" ID="universidad_select" AutoPostBack="true" OnSelectedIndexChanged="IndexChangedUniversidad" runat="server" />
<asp:RequiredFieldValidator CssClass="invalid-message" ControlToValidate="universidad_select" ErrorMessage="Debe seleccionar la universidad" Display="Dynamic" EnableClientScript="false" runat="server" />
<asp:CustomValidator ID="universidad_validator" CssClass="invalid-message" ControlToValidate="universidad_select" Display="Dynamic" EnableClientScript="false" runat="server" OnServerValidate="ValidateUniversidad" />
</div>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="form-group">
<asp:Label for="carrera_select" runat="server">Carrera</asp:Label>
<asp:DropDownList CssClass="form-control" ID="carrera_select" runat="server" />
<asp:RequiredFieldValidator CssClass="invalid-message" ControlToValidate="carrera_select" ErrorMessage="Debe seleccionar la carrera" Display="Dynamic" EnableClientScript="false" runat="server" />
<asp:CustomValidator ID="carrera_validator" CssClass="invalid-message" ControlToValidate="carrera_select" Display="Dynamic" EnableClientScript="false" runat="server" OnServerValidate="ValidateCarrera" />
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="universidad_select" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
<div class="form-group">
<asp:Label for="seminario_select" runat="server">Seminario</asp:Label>
<asp:DropDownList CssClass="form-control" ID="seminario_select" runat="server" />
<asp:RequiredFieldValidator CssClass="invalid-message" ControlToValidate="seminario_select" ErrorMessage="Debe seleccionar el seminario" Display="Dynamic" EnableClientScript="false" runat="server" />
<asp:CustomValidator ID="seminario_validator" CssClass="invalid-message" ControlToValidate="seminario_select" Display="Dynamic" EnableClientScript="false" runat="server" OnServerValidate="ValidateSeminario" />
</div>
<asp:Button CssClass="btn btn-primary" Text="Actualizar" runat="server" OnClick="OnActualizarClick" />
<asp:Button CssClass="btn btn-danger" Text="Eliminar" runat="server" OnClick="OnEliminarClick" />
</asp:Panel>
</asp:Content>
<asp:Content ContentPlaceHolderID="script" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,193 @@
using DAL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class modificar_participante : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
FillUniversidades();
FillSeminarios();
inscripcion_box.Text = DateTime.Today.ToString("yyyy-MM-dd");
}
}
private void FillUniversidades()
{
Entities entities = new Entities();
var universidades = from u in entities.Universidades select u;
universidad_select.DataSource = universidades.ToList();
universidad_select.DataTextField = "nombre";
universidad_select.DataValueField = "id";
universidad_select.DataBind();
universidad_select.Items.Insert(0, "Seleccione una Universidad");
}
private void FillSeminarios()
{
Entities entities = new Entities();
var seminarios = from s in entities.Seminarios select s;
seminario_select.DataSource = seminarios.ToList();
seminario_select.DataTextField = "nombre";
seminario_select.DataValueField = "id";
seminario_select.DataBind();
seminario_select.Items.Insert(0, "Seleccione un Seminario");
}
protected void IndexChangedUniversidad(object sender, EventArgs e)
{
if (universidad_select.SelectedIndex > 0)
{
var id = int.Parse(universidad_select.SelectedValue);
Entities entities = new Entities();
var carreras = from c in entities.Carreras where c.idUniversidad == id select c;
carrera_select.DataSource = carreras.ToList();
carrera_select.DataTextField = "nombre";
carrera_select.DataValueField = "id";
carrera_select.DataBind();
carrera_select.Items.Insert(0, "Seleccione una Carrera");
}
}
protected void OnBuscarClick(object sender, EventArgs e)
{
Entities entities = new Entities();
int id = 0;
try
{
int.TryParse(id_box.Text, out id);
}
catch (Exception ex)
{
id_error.Text = "No se encontro un participante con el id entregado";
ClearInput();
form_panel.Visible = false;
return;
}
var participante = (from p in entities.Participantes where p.id == id select p).SingleOrDefault();
if (participante == null)
{
id_error.Text = "No se encontro un participante con el id entregado";
ClearInput();
form_panel.Visible = false;
return;
}
id_error.Text = "";
var idUniversidad = (from c in entities.Carreras where c.id == participante.idCarrera select c.idUniversidad).SingleOrDefault();
nombre_box.Text = participante.nombre;
inscripcion_box.Text = participante.fechaInscripcion.ToString("yyyy-MM-dd");
pga_box.Text = participante.pga.ToString("0.##");
universidad_select.SelectedValue = idUniversidad.ToString();
IndexChangedUniversidad(sender, e);
carrera_select.SelectedValue = participante.idCarrera.ToString();
seminario_select.SelectedValue = participante.idSeminario.ToString();
form_panel.Visible = true;
}
private void ClearInput()
{
nombre_box.Text = "";
inscripcion_box.Text = "";
pga_box.Text = "";
universidad_select.SelectedIndex = 0;
carrera_select.Items.Clear();
seminario_select.SelectedIndex = 0;
}
protected void OnActualizarClick(object sender, EventArgs e)
{
Entities entities = new Entities();
int id = 0;
try { int.TryParse(id_box.Text, out id); }
catch (Exception ex) { return; }
var participante = (from p in entities.Participantes where p.id == id select p).SingleOrDefault();
if (participante == null) return;
participante.nombre = nombre_box.Text;
participante.fechaInscripcion = DateTime.Parse(inscripcion_box.Text);
participante.pga = double.Parse(pga_box.Text);
participante.idCarrera = int.Parse(carrera_select.SelectedValue);
participante.idSeminario = int.Parse(seminario_select.SelectedValue);
entities.SaveChanges();
Response.Redirect("/index.aspx");
}
protected void OnEliminarClick(object sender, EventArgs e)
{
Entities entities = new Entities();
int id = 0;
try { int.TryParse(id_box.Text, out id); }
catch (Exception ex) { return; }
var participante = (from p in entities.Participantes where p.id == id select p).SingleOrDefault();
if (participante == null) return;
entities.Participantes.Remove(participante);
entities.SaveChanges();
Response.Redirect("/index.aspx");
}
protected void ValidateNombre(object source, ServerValidateEventArgs args)
{
if (nombre_box.Text.Trim().Length > 80)
{
args.IsValid = false;
nombre_validator.Text = "El nombre es muy largo, maximo de 80 caracteres";
return;
}
args.IsValid = true;
}
protected void ValidateUniversidad(object source, ServerValidateEventArgs args)
{
if (universidad_select.SelectedIndex == 0)
{
args.IsValid = false;
universidad_validator.Text = "Porfavor seleccionar una universidad";
return;
}
args.IsValid = true;
}
protected void ValidateCarrera(object source, ServerValidateEventArgs args)
{
if (carrera_select.SelectedIndex == 0)
{
args.IsValid = false;
carrera_validator.Text = "Porfavor seleccionar una carrera";
return;
}
args.IsValid = true;
}
protected void ValidateSeminario(object source, ServerValidateEventArgs args)
{
if (seminario_select.SelectedIndex == 0)
{
args.IsValid = false;
seminario_validator.Text = "Porfavor seleccionar un seminario";
return;
}
args.IsValid = true;
}
}

View File

@@ -1,19 +1,5 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/base_page.master" AutoEventWireup="true" CodeFile="registrar_participante.aspx.cs" Inherits="registrar_participante" %>
<script runat="server">
protected void Unnamed_ServerValidate(object source, ServerValidateEventArgs args)
{
}
protected void universidad_select_SelectedIndexChanged(object sender, EventArgs e)
{
}
</script>
<asp:Content ContentPlaceHolderID="header" runat="Server">
<title>Nuevo Participante</title>
</asp:Content>
@@ -23,23 +9,23 @@
<h1>Nuevo Participante</h1>
<div class="form-group">
<label for="nombre_box">Nombre</label>
<asp:Label for="nombre_box" runat="server">Nombre</asp:Label>
<asp:TextBox CssClass="form-control" ID="nombre_box" runat="server" />
<asp:RequiredFieldValidator CssClass="invalid-message" ControlToValidate="nombre_box" ErrorMessage="Debe ingresar el nombre" Display="Dynamic" EnableClientScript="false" runat="server" />
<asp:CustomValidator ID="nombre_validator" CssClass="invalid-message" ControlToValidate="nombre_box" Display="Dynamic" EnableClientScript="false" runat="server" OnServerValidate="ValidateNombre" />
</div>
<div class="form-group">
<label for="inscripcion_box">Fecha Inscripcion</label>
<asp:Label for="inscripcion_box" runat="server">Fecha Inscripcion</asp:Label>
<asp:TextBox CssClass="form-control" ID="inscripcion_box" type="date" runat="server" />
<asp:RequiredFieldValidator CssClass="invalid-message" ControlToValidate="inscripcion_box" ErrorMessage="Debe ingresar la fecha de inscripcion" Display="Dynamic" EnableClientScript="false" runat="server" />
</div>
<div class="form-group">
<label for="pga_box">Promedio General Acumulado</label>
<asp:Label for="pga_box" runat="server">Promedio General Acumulado</asp:Label>
<asp:TextBox CssClass="form-control" ID="pga_box" type="number" step="0.01" min="0" max="7" runat="server" />
<asp:RequiredFieldValidator CssClass="invalid-message" ControlToValidate="pga_box" ErrorMessage="Debe ingresar el PGA" Display="Dynamic" EnableClientScript="false" runat="server" />
</div>
<div class="form-group">
<label for="universidad_select">Universidad</label>
<asp:Label for="universidad_select" runat="server">Universidad</asp:Label>
<asp:DropDownList CssClass="form-control" ID="universidad_select" AutoPostBack="true" OnSelectedIndexChanged="IndexChangedUniversidad" runat="server" />
<asp:RequiredFieldValidator CssClass="invalid-message" ControlToValidate="universidad_select" ErrorMessage="Debe seleccionar la universidad" Display="Dynamic" EnableClientScript="false" runat="server" />
<asp:CustomValidator ID="universidad_validator" CssClass="invalid-message" ControlToValidate="universidad_select" Display="Dynamic" EnableClientScript="false" runat="server" OnServerValidate="ValidateUniversidad" />
@@ -47,7 +33,7 @@
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="form-group">
<label for="carrera_select">Carrera</label>
<asp:Label for="carrera_select" runat="server">Carrera</asp:Label>
<asp:DropDownList CssClass="form-control" ID="carrera_select" runat="server" />
<asp:RequiredFieldValidator CssClass="invalid-message" ControlToValidate="carrera_select" ErrorMessage="Debe seleccionar la carrera" Display="Dynamic" EnableClientScript="false" runat="server" />
<asp:CustomValidator ID="carrera_validator" CssClass="invalid-message" ControlToValidate="carrera_select" Display="Dynamic" EnableClientScript="false" runat="server" OnServerValidate="ValidateCarrera" />
@@ -58,7 +44,7 @@
</Triggers>
</asp:UpdatePanel>
<div class="form-group">
<label for="seminario_select">Seminario</label>
<asp:Label for="seminario_select" runat="server">Seminario</asp:Label>
<asp:DropDownList CssClass="form-control" ID="seminario_select" runat="server" />
<asp:RequiredFieldValidator CssClass="invalid-message" ControlToValidate="seminario_select" ErrorMessage="Debe seleccionar el seminario" Display="Dynamic" EnableClientScript="false" runat="server" />
<asp:CustomValidator ID="seminario_validator" CssClass="invalid-message" ControlToValidate="seminario_select" Display="Dynamic" EnableClientScript="false" runat="server" OnServerValidate="ValidateSeminario" />