Initial Commit

This commit is contained in:
Daniel Cortés
2019-12-12 04:06:08 -03:00
commit 3132ecc900
36 changed files with 3190 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Para obtener más información sobre cómo usar la transformación de web.config, visite https://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!--
En el ejemplo siguiente, la transformación "SetAttributes" cambiará el valor de "connectionString" para que solamente use "ReleaseSQLServer" cuando el localizador "Match" encuentre un atributo "name" con el valor "MyDB". <connectionStrings> <add name="MyDB". connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> </connectionStrings>
-->
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<!--
En el ejemplo siguiente, la transformación "Replace" reemplazará toda la
sección <customErrors> del archivo web.config.
Tenga en cuenta que, como solo hay una sección customErrors bajo el nodo
<system.web>, no es necesario usar el atributo "xdt:Locator".
<customErrors defaultRedirect="GenericError.htm"
mode="RemoteOnly" xdt:Transform="Replace">
<error statusCode="500" redirect="InternalError.htm"/>
</customErrors>
-->
</system.web>
</configuration>

38
Universidad/Web.config Normal file
View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Para obtener más información sobre cómo configurar la aplicación ASP.NET, visite
https://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework"
type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false"/>
</configSections>
<system.web>
<compilation debug="true" targetFramework="4.6.1"/>
<httpRuntime targetFramework="4.6.1"/>
<sessionState timeout="30"></sessionState>
</system.web>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
</compilers>
</system.codedom>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices,EntityFramework.SqlServer"/>
</providers>
</entityFramework>
<connectionStrings>
<add name="Entities" connectionString="metadata=res://*/Entities.csdl|res://*/Entities.ssdl|res://*/Entities.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=DESKTOP-MSD3M14;initial catalog=universidad_db;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>

View File

@@ -0,0 +1,44 @@
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="base_page.master.cs" Inherits="base_page" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<link href="css/style.css" rel="stylesheet" />
<asp:ContentPlaceHolder ID="header" runat="server">
<title></title>
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form" runat="server">
<nav class="navbar fixed-top navbar-dark bg-primary">
<a class="navbar-brand" href="/index.aspx">Bienvenido: <asp:Literal ID="username_literal" runat="server"/></a>
</nav>
<div class="container">
<div class="row">
<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="#" 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>
</div>
<div class="col">
<asp:ContentPlaceHolder ID="content" runat="server">
</asp:ContentPlaceHolder>
</div>
</div>
</div>
<nav class="navbar fixed-bottom navbar-dark bg-primary">
<p ID="time_label" class="navbar-brand" runat="server"></p>
</nav>
</form>
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
<asp:ContentPlaceHolder ID="script" runat="server"></asp:ContentPlaceHolder>
</body>
</html>

View File

@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class base_page : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
if(Session["username"] == null)
{
Response.Redirect("login.aspx");
return;
}
username_literal.Text = Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(Session["username"].ToString());
time_label.InnerText = DateTime.Now.ToLongDateString();
}
protected void onCerrarSesionClick(object sender, EventArgs e)
{
Session["username"] = null;
Response.Redirect("login.aspx");
}
}

27
Universidad/css/style.css Normal file
View File

@@ -0,0 +1,27 @@
.container {
padding-top: 6em;
padding-bottom: 6em;
}
.sidebar {
border-right: lightgray solid 1px;
margin-right: 1em;
}
.row {
height: 100%;
}
.card-login {
max-width: 33vw;
margin-top: 15vh;
margin-left: auto;
margin-right: auto;
}
.invalid-message {
display: block;
width: 100%;
margin-top: 0.25rem;
font-size: 0.875em;
color: #dc3545;
}

8
Universidad/index.aspx Normal file
View File

@@ -0,0 +1,8 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/base_page.master" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="index" %>
<asp:Content ID="Content1" ContentPlaceHolderID="header" Runat="Server">
<title>Index</title>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="content" Runat="Server">
</asp:Content>

14
Universidad/index.aspx.cs Normal file
View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}

43
Universidad/login.aspx Normal file
View File

@@ -0,0 +1,43 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="login" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous" />
<link href="css/style.css" rel="stylesheet" />
</head>
<body>
<form id="form1" runat="server">
<div class="card card-login">
<div class="card-header">
Login
</div>
<div class="card-body">
<div class="form-group">
<label for="username_box">Nombre de usuario</label>
<asp:TextBox CssClass="form-control" ID="username_box" runat="server" />
<asp:RequiredFieldValidator ControlToValidate="username_box" CssClass="invalid-message" ErrorMessage="Debe ingresar su nombre de usuario" Display="Dynamic" EnableClientScript="false" runat="server" />
<asp:CustomValidator ID="username_validator" ControlToValidate="username_box" CssClass="invalid-message" OnServerValidate="validateUsername" Display="Dynamic" EnableClientScript="false" runat="server" />
</div>
<div class="form-group">
<label for="password">Contraseña</label>
<asp:TextBox TextMode="Password" CssClass="form-control" ID="password_box" runat="server" />
<asp:RequiredFieldValidator ControlToValidate="password_box" CssClass="invalid-message" ErrorMessage="Debe ingresar su contraseña" Display="Dynamic" EnableClientScript="false" runat="server" />
<asp:CustomValidator ID="password_validator" ControlToValidate="password_box" CssClass="invalid-message" OnServerValidate="validatePassword" Display="Dynamic" EnableClientScript="false" runat="server" />
</div>
<p class="invalid-message">
<asp:Literal ID="error_message" runat="server" />
</p>
<asp:Button CssClass="btn btn-primary" Text="Login" OnClick="onLoginClick" runat="server" />
<a href="/register.aspx" class="">Crear una cuenta</a>
</div>
</div>
</form>
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
</body>
</html>

66
Universidad/login.aspx.cs Normal file
View File

@@ -0,0 +1,66 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL;
using Utils;
public partial class login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(Session["username"] != null)
{
Response.Redirect("/index.aspx");
return;
}
}
protected void onLoginClick(object sender, EventArgs e)
{
if (Page.IsValid)
{
Entities entities = new Entities();
Usuario usuario = (from u in entities.Usuarios where u.nombre == username_box.Text select u).SingleOrDefault();
if (usuario == null)
{
error_message.Text = "El usuario o contraseña no son validos";
return;
}
if (!PasswordHash.Compare(password_box.Text, usuario.password))
{
error_message.Text = "El usuario o contraseña no son validos";
return;
}
Session["username"] = usuario.nombre;
Response.Redirect("/index.aspx");
}
}
protected void validateUsername(object sender, ServerValidateEventArgs e)
{
if (username_box.Text.Length > 15)
{
e.IsValid = false;
username_validator.Text = "El nombre de usuario es demasiado largo, maximo de 15 caracteres";
return;
}
e.IsValid = true;
}
protected void validatePassword(object sender, ServerValidateEventArgs e)
{
if (password_box.Text.Length > 15)
{
e.IsValid = false;
password_validator.Text = "La contraseña es demasiado larga, maximo de 15 caracteres";
return;
}
e.IsValid = true;
}
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EntityFramework" version="6.4.0" targetFramework="net461" />
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.0" targetFramework="net461" />
</packages>

48
Universidad/register.aspx Normal file
View File

@@ -0,0 +1,48 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="register.aspx.cs" Inherits="register" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Registrar</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous" />
<link href="css/style.css" rel="stylesheet" />
</head>
<body>
<form id="form1" runat="server">
<div class="card card-login">
<div class="card-header">
Registro
</div>
<div class="card-body">
<div class="form-group">
<label for="username_box">Nombre de usuario</label>
<asp:TextBox CssClass="form-control" ID="username_box" runat="server" />
<asp:RequiredFieldValidator ControlToValidate="username_box" CssClass="invalid-message" ErrorMessage="Debe ingresar un nombre de usuario" Display="Dynamic" EnableClientScript="false" runat="server" />
<asp:CustomValidator ID="username_validator" ControlToValidate="username_box" CssClass="invalid-message" OnServerValidate="validateUsername" Display="Dynamic" EnableClientScript="false" runat="server" />
</div>
<div class="form-group">
<label for="password">Contraseña</label>
<asp:TextBox TextMode="Password" CssClass="form-control" ID="password_box" runat="server" />
<asp:RequiredFieldValidator ControlToValidate="password_box" CssClass="invalid-message" ErrorMessage="Debe ingresar una contraseña" Display="Dynamic" EnableClientScript="false" runat="server" />
<asp:CustomValidator ID="password_validator" ControlToValidate="password_box" CssClass="invalid-message" OnServerValidate="validatePassword" Display="Dynamic" EnableClientScript="false" runat="server" />
</div>
<div class="form-group">
<label for="password_confirm">Confirmar Contraseña</label>
<asp:TextBox TextMode="Password" CssClass="form-control" ID="password_confirm_box" runat="server" />
<asp:RequiredFieldValidator ControlToValidate="password_confirm_box" CssClass="invalid-message" ErrorMessage="Debe confirmar la contraseña" Display="Dynamic" EnableClientScript="false" runat="server" />
<asp:CompareValidator ControlToValidate="password_confirm_box" CssClass="invalid-message" ControlToCompare="password_box" ErrorMessage="Las contraseñas ingresadas no son iguales" Display="Dynamic" EnableClientScript="false" runat="server" />
</div>
<p class="invalid-message">
<asp:Literal ID="error_message" runat="server" />
</p>
<asp:Button CssClass="btn btn-primary" Text="Registrarse" OnClick="onRegisterClick" runat="server" />
</div>
</div>
</form>
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
</body>
</html>

View File

@@ -0,0 +1,66 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL;
using Utils;
public partial class register : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["username"] != null)
{
Response.Redirect("/index.aspx");
return;
}
}
protected void onRegisterClick(object sender, EventArgs e)
{
if (Page.IsValid)
{
Entities entities = new Entities();
Usuario usuario = new Usuario();
usuario.nombre = username_box.Text;
usuario.password = PasswordHash.Hash(password_box.Text);
entities.Usuarios.Add(usuario);
entities.SaveChanges();
Response.Redirect("/login.aspx");
}
}
protected void validateUsername(object sender, ServerValidateEventArgs e)
{
if (username_box.Text.Trim().Length > 15)
{
e.IsValid = false;
username_validator.Text = "El nombre de usuario es demasiado largo, maximo de 15 caracteres";
return;
}
Entities entities = new Entities();
if((from u in entities.Usuarios where u.nombre == username_box.Text.Trim() select u.nombre).SingleOrDefault() != null)
{
e.IsValid = false;
username_validator.Text = "El nombre de usuario ya existe";
return;
}
e.IsValid = true;
}
protected void validatePassword(object sender, ServerValidateEventArgs e)
{
if (password_box.Text.Length > 15)
{
e.IsValid = false;
password_validator.Text = "La contraseña es demasiado larga, maximo de 15 caracteres";
return;
}
e.IsValid = true;
}
}

View File

@@ -0,0 +1,71 @@
<%@ 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>
<asp:Content ContentPlaceHolderID="content" runat="Server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<h1>Nuevo Participante</h1>
<div class="form-group">
<label for="nombre_box">Nombre</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: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: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: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">
<label for="carrera_select">Carrera</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">
<label for="seminario_select">Seminario</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="Registrar" runat="server" OnClick="OnRegistrarClick" />
</asp:Content>
<asp:Content ContentPlaceHolderID="script" runat="server">
</asp:Content>

View File

@@ -0,0 +1,124 @@
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 registrar_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 OnRegistrarClick(object sender, EventArgs e)
{
if(Page.IsValid)
{
Entities entities = new Entities();
Participante participante = new Participante();
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.Participantes.Add(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;
}
}