12. capa web minibank. (2010-06-06) - udcsabia.tic.udc.es/docencia/is/old/2009-2010/docs... ·...
TRANSCRIPT
![Page 1: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/1.jpg)
Caso de Estudio: Diseño e Implementación de la Capa Web de MiniBankla Capa Web de MiniBank
Integración de SistemasParte II Diseño e implementación deParte II. Diseño e implementación de aplicaciones Web con .NET
![Page 2: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/2.jpg)
I t d ióIntroducción
![Page 3: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/3.jpg)
I t d ióIntroducción
E t t d t di l di ñ i l t ió d l En este apartado estudiaremos el diseño e implementación de las capas controlador y vista de MiniBank
Configuración de la aplicación Web Configuración de la aplicación Web
Página maestra de MiniBank
Un ejemplo de una acción que realiza una operación que no visualiza Un ejemplo de una acción que realiza una operación que no visualiza resultados Transferencia bancaria
Un ejemplo de una acción que realiza una operación y visualiza el resultado de la operación Búsqueda de cuentas bancarias por identificador de cuenta (resultado en
una página) o de usuario (resultado en varias páginas)
Internacionalización
![Page 4: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/4.jpg)
C fi ió Gl b lConfiguración: Global.asax
namespace Es Udc DotNet MiniBanknamespace Es.Udc.DotNet.MiniBank{
public class Global : System.Web.HttpApplication{
protected void Application Start(object sender, EventArgs e)protected void Application_Start(object sender, EventArgs e){
IUnityContainer container = new UnityContainer();UnityConfigurationSection section =
(UnityConfigurationSection)ConfigurationManager.GetSection("unity");section.Containers.Default.Configure(container);
Application["UnityContainer"] = container;
LogManage Reco dMessage("Unit Containe loaded "LogManager.RecordMessage("Unity Container loaded.",LogManager.MessageType.INFO);
}
<<...>><<...>>
}
![Page 5: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/5.jpg)
C fi ió W b fiConfiguración: Web.config
<system.web>
<!-- Cultural preferences of the Web site --><globalization culture="auto" uiCulture="auto" />
<!-- Valid Options: UseUri (True), UseCookies (False), AutoDetect --><sessionState cookieless="AutoDetect" timeout="30" />
<! V lid O ti O Off R t O l ><!-- Valid Options: On, Off, RemoteOnly --><customErrors mode="RemoteOnly" defaultRedirect="/Errors/InternalError.aspx"></customErrors>
<<...>><<...>>
</system.web>
<!-- Unity configuration block --><unity>
<< Identico a App.config en MiniBank (model)>>
</unity>
![Page 6: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/6.jpg)
C fi ió W b fiConfiguración: Web.config
<applicationSettings><Es.Udc.DotNet.MiniBank.Properties.Settings>
<setting name="MiniBank_defaultCount" serializeAs="String"><value>2</value>
</setting>
<setting name="MiniBank_applicationURL" serializeAs="String">< l >htt //l lh t 8081/Mi iB k</ l ><value>http://localhost:8081/MiniBank</value>
</setting>
</Es.Udc.DotNet.MiniBank.Properties.Settings></applicationSettings></applicationSettings>
![Page 7: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/7.jpg)
C fi ió W b fiConfiguración: Web.config
Configurable desde de forma gráfica en VS desde la pestaña Settings en la Configurable desde de forma gráfica en VS desde la pestaña Settings en la propiedades del proyecto
![Page 8: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/8.jpg)
C fi ió t iConfiguración: otras opciones
![Page 9: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/9.jpg)
Mi iB k M t Vi t d di ñMiniBank.Master: Vista de diseño
![Page 10: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/10.jpg)
Mi iB k M t Vi t d ódiMiniBank.Master: Vista de código
<%@ M t L "C#" A t E tWi "t " C d B hi d "Mi iB k t "<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MiniBank.master.cs"Inherits="Es.Udc.DotNet.MiniBank.Web.MiniBank" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><title>MiniBank</title>t t e a /t t e<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/><link href="~/Img/MiniBank.ico" rel="Shortcut Icon" /><link href="~/Css/MiniBank.Styles.css" rel="stylesheet" type="text/css" />
</head>
<body><div id="window">
<!-- Body Header. --><div id="header">
<asp:Localize ID="lclHeader" runat="server" meta:resourcekey="lclHeader" /></div>
![Page 11: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/11.jpg)
Mi iB k M t Vi t d ódiMiniBank.Master: Vista de código<!-- Main Content. --><div id="pageBody"><div id= pageBody >
<div id="sidebar"><ul>
<li><asp:HyperLink ID="lnkHome" runat="server"meta:resourcekey="lnkHome"NavigateUrl="~/Pages/MainPage.aspx" />
</li>
<<...>>
</ul></div><div id="content">
<asp:ContentPlaceHolder ID="ContentPlaceHolderMain" runat="server"><asp:ContentPlaceHolder ID ContentPlaceHolderMain runat server ></asp:ContentPlaceHolder>
</div></div><!-- Footer. -->di id "f t "<div id="footer">
<asp:Localize ID="lclFooter" runat="server" meta:resourcekey="lclFooter" /></div>
</div></body></html>
![Page 12: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/12.jpg)
Mi iB k M tMiniBank.Master.cs
using System;namespace Es.Udc.DotNet.MiniBank.Web{
public partial class MiniBank : System.Web.UI.MasterPagepublic partial class MiniBank : System.Web.UI.MasterPage{
protected void Page_Load(object sender, EventArgs e){}
}}}
![Page 13: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/13.jpg)
Mi iB k M t d iMiniBank.Master.designer.cs
namespace Es.Udc.DotNet.MiniBank.Web {p
public partial class MiniBank {
protected global::System.Web.UI.WebControls.Localize lclHeader;
protected global::System.Web.UI.WebControls.HyperLink lnkHome;
protected global::System.Web.UI.WebControls.HyperLink lnkCreate;
<<...>>
protected global::System.Web.UI.WebControls.ContentPlaceHolderContentPlaceHolderMain;
protected global::System.Web.UI.WebControls.Localize lclFooter;}
}
![Page 14: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/14.jpg)
T f iTransferencia
Transfer.aspxTransfer.aspx
SuccessfulOperation aspxSuccessfulOperation.aspx
![Page 15: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/15.jpg)
T f i (Vi t d di ñ )Transferencia: Transfer.aspx (Vista de diseño)
![Page 16: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/16.jpg)
T f iTransferencia: Transfer.aspx.designer.cs
namespace Es.Udc.DotNet.MiniBank {
public partial class Transfer {
d l b l S b lC l l fprotected global::System.Web.UI.HtmlControls.HtmlForm TransferForm;
protected global::System.Web.UI.WebControls.Localize lclSourceAccId;protected global::System.Web.UI.WebControls.Localize lclDestinationAccId;protected global::System.Web.UI.WebControls.Localize lclAmount;
protected global::System.Web.UI.WebControls.TextBox txtSourceAccId;protected global::System.Web.UI.WebControls.TextBox txtDestinationAccId;protected global::System.Web.UI.WebControls.TextBox txtAmount;
protected global::System.Web.UI.WebControls.Label lblSourceAccError;protected global::System.Web.UI.WebControls.Label lblDestinationAccError;protected global::System.Web.UI.WebControls.Label lblAmountError;
![Page 17: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/17.jpg)
T f iTransferencia: Transfer.aspx.designer.cs
protected global::System.Web.UI.WebControls.RequiredFieldValidatorrfvSourceAccId;
protected global::System.Web.UI.WebControls.RequiredFieldValidatorf i i drfvDestinationAccId;
protected global::System.Web.UI.WebControls.RequiredFieldValidatorrfvBalance;
protected global::System.Web.UI.WebControls.RegularExpressionValidatortypeSourceAccIdValidator;
protected global::System.Web.UI.WebControls.RegularExpressionValidatortypeDestinationAccId;
protected global::System.Web.UI.WebControls.RegularExpressionValidatortypeAmountValidator;typeAmountValidator;
protected global::System.Web.UI.WebControls.Button btnTransfer;}
}
![Page 18: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/18.jpg)
Transferencia f (Vista de código)Transferencia: Transfer.aspx (Vista de código)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Transfer.aspx.cs"g g g p pInherits="Es.Udc.DotNet.MiniBank.Web.Pages.Transfer" MasterPageFile="~/MiniBank.Master"%>
<asp:Content ID="content" ContentPlaceHolderID="ContentPlaceHolderMain" runat="server">p<div id="form">
<form id="TransferForm" method="post" runat="server">
<div class="field"><span class="label">
<asp:Localize ID="lclSourceAccId" runat="server"meta:resourcekey="lclSourceAccId" /></span>
<span class="entry"><asp:TextBox ID="txtSourceAccId" runat="server" Width="200px"
Columns="16"></asp:TextBox>
<asp:RegularExpressionValidator ID="typeSourceAccIdValidator"runat="server" ControlToValidate="txtSourceAccId" Text="<%$ Resources: Common, typeError %>" ValidationExpression="(\d)*"CssClass="errorMessage" Display="Dynamic">
</asp:RegularExpressionValidator>
![Page 19: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/19.jpg)
Transferencia f (Vista de código)Transferencia: Transfer.aspx (Vista de código)
<asp:RequiredFieldValidator ID="rfvSourceAccId" runat="server"ControlToValidate="txtSourceAccId" Display="Dynamic"Text="<%$ Resources: Common, mandatoryField %>" CssClass="errorMessage">
</asp:RequiredFieldValidator>
<asp:Label ID="lblSourceAccError" runat="server"CssClass="errorMessage" meta:resourcekey="lblSourceAccError">
</asp:Label></span>
</div>
<<...>>
<div class="button"><asp:Button ID="btnTransfer" runat="server" meta:resourcekey="btnTransfer"
O Cli k "bt T f Cli k" /OnClick="btnTransfer_Click" /></div>
</form></div></ C t t></asp:Content>
![Page 20: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/20.jpg)
T f iTransferencia: Transfer.aspx.cs
public partial class Transfer : SpecificCulturePage{
protected void Page_Load(object sender, EventArgs e){
lblSourceAccError.Visible = false;lblDestinationAccError.Visible = false;lblAmountError.Visible = false;
}
protected void btnTransfer_Click(object sender, EventArgs e){
/* Get data. */long sourceAccountIdentifier =
Convert.ToInt32(txtSourceAccId.Text);long destinationAccountIdentifier =
Convert.ToInt32(txtDestinationAccId.Text);d bl tdouble amount =
Convert.ToInt64(txtAmount.Text);
![Page 21: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/21.jpg)
T f iTransferencia: Transfer.aspx.cs
/* Transfer. */try{
/* Get the Service */IUnityContainer container =
(IUnityContainer)Application["unityContainer"];
IAccountService accountService = container.Resolve<IAccountService>();
accountService.Transfer(sourceAccountIdentifier, destinationAccountIdentifier, amount);
Response.Redirect(Response.ApplyAppPathModifier("./SuccessfulOperation.aspx"));
}
![Page 22: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/22.jpg)
T f iTransferencia: Transfer.aspx.cs
catch (InstanceNotFoundException ex){
long key = (long)ex.Key;
/* Process errors and show labels */if (key.Equals(sourceAccountIdentifier))
lblSourceAccError.Visible = true;else
lblDestinationAccError.Visible = true;}catch (InsufficientBalanceException ex){
String labelText = String.Format((string)GetLocalResourceObject("lblAmountError.Text"),ex.CurrentBalance);
lblA tE T t l b lT tlblAmountError.Text = labelText;lblAmountError.Visible = true;
}}
}}
![Page 23: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/23.jpg)
Bú d d t id tifi d d tBúsqueda de cuentas por identificador de cuenta
FindAccounts aspxFindAccounts.aspx
ShowAccountByAccID aspxShowAccountByAccID.aspx
![Page 24: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/24.jpg)
Bú d d t id tifi d d iBúsqueda de cuentas por identificador de usuarioFindAccounts.aspx
ShowAccountsByUserID.aspx
![Page 25: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/25.jpg)
Búsqueda de cuentas:Búsqueda de cuentas: FindAccounts.aspx (Vista de diseño)
![Page 26: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/26.jpg)
Búsqueda de cuentas:Búsqueda de cuentas: FindAccounts.aspx (Vista de código)<asp:Content ID="content1" ContentPlaceHolderID="ContentPlaceHolderMain"p
runat="server"><div id="form">
<form id="FindForm" method="post" runat="server"><div class="field">
<span class="label"><span class= label ><asp:Localize ID="lclIdentifier" runat="server"
meta:resourcekey="lblIdentifier" /></span><span class="entry">
i i i 200<asp:TextBox ID="txtIdentifier" runat="server" Width="200px"Columns="16" />
<asp:RegularExpressionValidator ID="typeValidator" runat="server"ControlToValidate="txtIdentifier" ValidationExpression="(\d)*"Text="<%$ Resources: Common, typeError %>" Display="Dynamic"yp p y yCssClass="errorMessage" />
<asp:RequiredFieldValidator ID="rfvIdentifier" runat="server"ControlToValidate="txtIdentifier" Display="Dynamic"Text="<%$ Resources: Common, mandatoryField %>"CssClass="errorMessage" />CssClass= errorMessage />
<asp:Label CssClass="errorMessage" ID="lblIdentifierError"runat="server" meta:resourcekey="lblIdentifierError" />
</span></div>
![Page 27: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/27.jpg)
Búsqueda de cuentas:Búsqueda de cuentas: FindAccounts.aspx (Vista de código)
<div class="field">div class field<span class="label">
<asp:Localize ID="lclFindBy" runat="server"meta:resourcekey="lclFindBy" />
</span>/ p<span class="entry">
<asp:DropDownList ID="ddlFindBy" runat="server" Width="200px"><asp:ListItem Value="accID"
Text="<%$ Resources:Common, accId %>" /><asp:ListItem Value="userID"
Text="<%$ Resources:Common, userId %>" /></asp:DropDownList>
</span></div><div class="button">
<asp:Button ID="btnFind" runat="server" meta:resourcekey="btnFind"OnClick="btnFind_Click" />
</div></form>
</div></asp:Content>
![Page 28: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/28.jpg)
Bú d d t Fi dA tBúsqueda de cuentas: FindAccounts.aspx.cs
public partial class FindAccounts : SpecificCulturePagepublic partial class FindAccounts : SpecificCulturePage{
protected void Page_Load(object sender, EventArgs e){
lblIdentifierError.Visible = false;}
protected void btnFind_Click(object sender, EventArgs e){
/* Get data. *// /String identifierType = this.ddlFindBy.SelectedValue;Int32 identifier = Convert.ToInt32(this.txtIdentifier.Text);
/* Do action. */if (identifierType == "accID")if (identifierType == accID ){
FindAccountByAccountIdentifier(identifier);}else{
String url = String.Format("./ShowAccountsByUserID.aspx?userID={0}",
identifier);Response.Redirect(Response.ApplyAppPathModifier(url));p p pp y pp
}}
![Page 29: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/29.jpg)
Bú d d t Fi dA tBúsqueda de cuentas: FindAccounts.aspx.cs
private void FindAccountByAccountIdentifier(long accountIdentifier){
try{
<< Get the Service >>
/* Get Account Data */Account account = accountService.FindAccount(accountIdentifier);
/* Attach data to context *// Attach data to context /Context.Items.Add("account", account);
/* Transfer to visualization WebForm */Server.Transfer(Response.
i i /ApplyAppPathModifier("./ShowAccountByAccID.aspx"));}catch (InstanceNotFoundException){
lblIdentifierError.Visible = true;}
}}
![Page 30: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/30.jpg)
Búsqueda de cuentas:Búsqueda de cuentas: ShowAccountByAccID.aspx (Vista de diseño)
![Page 31: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/31.jpg)
Búsqueda de cuentas:Búsqueda de cuentas: ShowAccountByAccID.aspx (Vista de código)
<asp:Content ID="content1" ContentPlaceHolderID="ContentPlaceHolderMain"<asp:Content ID content1 ContentPlaceHolderID ContentPlaceHolderMainrunat="server">
<asp:Table CssClass="accountDetails" ID="TableAccountInfo" runat="server">
<asp:TableRow runat="server"><asp:TableRow runat= server ><asp:TableHeaderCell ID="cellCaptionAccountID" runat="server"
Text="<%$ Resources:Common, accId %>"></asp:TableHeaderCell><asp:TableCell ID="cellAccountID" runat="server"></asp:TableCell>
</asp:TableRow>
<asp:TableRow runat="server"><asp:TableHeaderCell ID="cellCaptionUserID" runat="server"
Text="<%$ Resources:Common, userId %>"></asp:TableHeaderCell><asp:TableCell ID="cellUserID" runat="server"></asp:TableCell>
</asp:TableRow>
<asp:TableRow runat="server"><asp:TableHeaderCell ID="cellCaptionBalance" runat="server"
Text="<%$ Resources:Common, balance %>"></asp:TableHeaderCell>, p<asp:TableCell ID="cellBalance" runat="server"></asp:TableCell>
</asp:TableRow>
</asp:Table>
</asp:Content>
![Page 32: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/32.jpg)
Bú d d t Sh A tB A IDBúsqueda de cuentas: ShowAccountByAccID.aspx.cs
protected void Page_Load(object sender, EventArgs e){
Account account = (Account)Context.Items["account"];
icellAccountID.Text = account.accId.ToString();cellUserID.Text = account.usrId.ToString();cellBalance.Text = account.balance.ToString();
}
![Page 33: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/33.jpg)
Búsqueda de cuentas:Búsqueda de cuentas: ShowAccountsByUserID.aspx (Vista de diseño)
![Page 34: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/34.jpg)
Búsqueda de cuentas:Búsqueda de cuentas: ShowAccountsByUserID.aspx (Vista de código)
<asp:Content ID="content1" ContentPlaceHolderID="ContentPlaceHolderMain"runat="server">
<form runat="server"><p>p
<asp:Label ID="lblNoUserAccounts" meta:resourcekey="lblNoUserAccounts"runat="server">
</asp:Label></p>
<asp:GridView ID="gvUserAccounts" runat="server" CssClass="userAccounts"GridLines="None" AutoGenerateColumns="False">
<Columns><asp:BoundField DataField="accId"
$ /HeaderText="<%$ Resources:Common, accId %>" /><asp:BoundField DataField="balance"
HeaderText="<%$ Resources:Common, balance %>" /></Columns>
</asp:GridView>
</form>
![Page 35: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/35.jpg)
Búsqueda de cuentas:Búsqueda de cuentas: ShowAccountsByUserID.aspx (Vista de código)
<!-- "Previous" and "Next" links. --><div class="previousNextLinks">
<span class="previousLink"><asp:HyperLink ID="lnkPrevious" Text="<%$ Resources:Common, Previous %>"
runat="server" Visible="False"></asp:HyperLink>
</span><span class="nextLink">
i %$ %<asp:HyperLink ID="lnkNext" Text="<%$ Resources:Common, Next %>"runat="server" Visible="False">
</asp:HyperLink></span>
</di ></div>
</asp:Content>
![Page 36: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/36.jpg)
Bú d d tBúsqueda de cuentas: ShowAccountsByUserID.aspx.cs
protected void Page_Load(object sender, EventArgs e){
int startIndex, count;
lnkPrevious Visible = false;lnkPrevious.Visible = false;lnkNext.Visible = false;lblNoUserAccounts.Visible = false;
/* Get User Identifier passed as parameter in the request from * th i* the previous page */long userID = Convert.ToInt32(Request.Params.Get("userID"));
/* Get Start Index */try{
startIndex = Int32.Parse(Request.Params.Get("startIndex"));}catch (ArgumentNullException)g p{
startIndex = 0;}
![Page 37: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/37.jpg)
Bú d d tBúsqueda de cuentas: ShowAccountsByUserID.aspx.cs
/* Get Count *// Get Count /try{
count = Int32.Parse(Request.Params.Get("count"));}catch (ArgumentNullException)catch (ArgumentNullException){
count = Settings.Default.MiniBank_defaultCount;}
<< G t th S i >><< Get the Service >>IUnityContainer container = ...
/* Get Accounts Info */List<Account> accounts =
accountService.FindAccountsByUserIdentifier(userID, startIndex, count);
if (accounts.Count == 0){
lblNoUserAccounts.Visible = true;return;
}
![Page 38: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/38.jpg)
Bú d d tBúsqueda de cuentas: ShowAccountsByUserID.aspx.cs
this.gvUserAccounts.DataSource = accounts;this.gvUserAccounts.DataBind();
/* Get the number of accounts in order to manage the previous * and next links */int numberOfAccounts = accountService.GetNumberOfAccounts(userID);
/* "Previous" link */if ((startIndex - count) >= 0){
String url = Settings.Default.MiniBank_applicationURL +"/ShowAccountsByUserID.aspx" + "?userID=" + userID +"&startIndex=" + (startIndex - count) + "&count=" + count;
this.lnkPrevious.NavigateUrl = Response.ApplyAppPathModifier(url);p pp y pp
this.lnkPrevious.Visible = true;}
![Page 39: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/39.jpg)
Bú d d tBúsqueda de cuentas: ShowAccountsByUserID.aspx.cs
/* "Next" link */if ((startIndex + count) < numberOfAccounts){
String url = Settings.Default.MiniBank_applicationURL +"/ShowAccountsByUserID aspx" + "?userID=" + userID +/ShowAccountsByUserID.aspx + ?userID= + userID +"&startIndex=" + (startIndex + count) + "&count=" + count;
this.lnkNext.NavigateUrl = Response.ApplyAppPathModifier(url);
thi l kN t Vi ibl tthis.lnkNext.Visible = true;}
}
![Page 40: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/40.jpg)
S l ió d idi íSelección de idioma y país
SetLocale.aspxp
![Page 41: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/41.jpg)
Selección de idioma y país: Se ecc ó de d o a y pa sSetLocale.aspx.csprotected void Page Load(object sender, EventArgs e)protected void Page_Load(object sender, EventArgs e){
String language;String country;
if (!I P tB k)if (!IsPostBack){
/* * We check if exists a locale in the session. In this case, * we get the language and the region/country from the locale.* Other case we use the browser preferences to extract the* language and the region/country*/
if (!SessionManager.IsLocaleDefined(Context)){{
/* Gets preferred language from browser */language = GetLanguageFromBrowserPreferences();country = GetCountryFromBrowserPreferences();
}
![Page 42: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/42.jpg)
Selección de idioma y país: Se ecc ó de d o a y pa sSetLocale.aspx.cs
lelse{
Locale locale = SessionManager.GetLocale(Context);language = locale.Language;country = locale.Country;
}
/* Finally we update de data of the "Combo", using the* selected language and region/country.*//
UpdateComboLanguage(language);UpdateComboCountry(language, country);
}}
![Page 43: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/43.jpg)
Selección de idioma y país: Se ecc ó de d o a y pa sSetLocale.aspx.cs
private String GetLanguageFromBrowserPreferences(){
String language;CultureInfo cultureInfo =
C lt I f C t S ifi C lt (R t U L [0])CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);language = cultureInfo.TwoLetterISOLanguageName;return language;
}
![Page 44: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/44.jpg)
Selección de idioma y país: Se ecc ó de d o a y pa sSetLocale.aspx.cs
private String GetCountryFromBrowserPreferences(){
String country;CultureInfo cultureInfo =
CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);
if (cultureInfo.IsNeutralCulture){
t ""country = "";}else{
// c lt reInfoName is something like en US// cultureInfoName is something like en-USString cultureInfoName = cultureInfo.Name;// Gets the last two caracters of cultureInfonamecountry =
cultureInfoName Substring(cultureInfoName Length 2);cultureInfoName.Substring(cultureInfoName.Length - 2);}return country;
}
![Page 45: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/45.jpg)
Selección de idioma y país: Se ecc ó de d o a y pa sSetLocale.aspx.cs
private void UpdateComboCountry(String selectedLanguage, String selectedCountry)
{this.comboCountry.DataSource =
Countries.GetCountries(selectedLanguage);this.comboCountry.DataTextField = "value";this.comboCountry.DataValueField = "text";this.comboCountry.DataBind();thi b C t S l t dV l l t dC tthis.comboCountry.SelectedValue = selectedCountry;
}
private void UpdateComboLanguage(String selectedLanguage){{
this.comboLanguage.DataSource = Languages.GetLanguages(selectedLanguage);
this.comboLanguage.DataTextField = "value";this comboLanguage DataValueField = "text";this.comboLanguage.DataValueField = text ;this.comboLanguage.DataBind();this.comboLanguage.SelectedValue = selectedLanguage;
}
![Page 46: 12. Capa Web MiniBank. (2010-06-06) - UDCsabia.tic.udc.es/docencia/is/old/2009-2010/docs... · 2010-06-07 · It d ióIntroducción E t td tdi ldi ñ i l t ió d lEn este apartado](https://reader033.vdocuments.net/reader033/viewer/2022041922/5e6c4de88bd84b079d5a500a/html5/thumbnails/46.jpg)
Selección de idioma y país: Se ecc ó de d o a y pa sSetLocale.aspx.cs
protected void btnSetLocale_Click(object sender, EventArgs e){
string language = comboLanguage.SelectedValue;string country = comboCountry.SelectedValue;
Locale locale = new Locale(language, country);
SessionManager.SetLocale(Context, locale);
Response.Redirect(Response.ApplyAppPathModifier("~/MainPage.aspx"));
}
protected void comboLanguage_SelectedIndexChanged(object sender, EventArgs e)
{/* After a language change the countries are printed in the/* After a language change, the countries are printed in the* correct language.
*/this.UpdateComboCountry(comboLanguage.SelectedValue,
comboCountry SelectedValue);comboCountry.SelectedValue);}