Initial Commit
This commit is contained in:
23
Universidad/Web.Debug.config
Normal file
23
Universidad/Web.Debug.config
Normal 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
38
Universidad/Web.config
Normal 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=\"Web\" /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="data source=DESKTOP-MSD3M14;initial catalog=universidad_db;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
|
||||
</connectionStrings>
|
||||
</configuration>
|
||||
44
Universidad/base_page.master
Normal file
44
Universidad/base_page.master
Normal 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>
|
||||
29
Universidad/base_page.master.cs
Normal file
29
Universidad/base_page.master.cs
Normal 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
27
Universidad/css/style.css
Normal 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
8
Universidad/index.aspx
Normal 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
14
Universidad/index.aspx.cs
Normal 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
43
Universidad/login.aspx
Normal 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
66
Universidad/login.aspx.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
5
Universidad/packages.config
Normal file
5
Universidad/packages.config
Normal 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
48
Universidad/register.aspx
Normal 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>
|
||||
66
Universidad/register.aspx.cs
Normal file
66
Universidad/register.aspx.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
71
Universidad/registrar_participante.aspx
Normal file
71
Universidad/registrar_participante.aspx
Normal 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>
|
||||
|
||||
124
Universidad/registrar_participante.aspx.cs
Normal file
124
Universidad/registrar_participante.aspx.cs
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user