You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by gb...@apache.org on 2005/06/19 16:45:25 UTC

svn commit: r191346 [12/16] - in /ibatis/trunk/cs/npetshop2: ./ External-bin/ NPetshop.Domain/ NPetshop.Domain/Accounts/ NPetshop.Domain/Billing/ NPetshop.Domain/Catalog/ NPetshop.Domain/Shopping/ NPetshop.Persistence/ NPetshop.Persistence/Ddl/ NPetsho...

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/NewAccount.ascx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/NewAccount.ascx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/NewAccount.ascx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/NewAccount.ascx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,16 @@
+<%@ Register TagPrefix="uc1" TagName="TopBar" Src="../TopBar.ascx" %>
+<%@ Register TagPrefix="uc1" TagName="Banner" Src="../Banner.ascx" %>
+<%@ Register TagPrefix="uc1" TagName="Account" Src="AccountUI.ascx" %>
+<%@ Control Language="c#" AutoEventWireup="false" Codebehind="NewAccount.ascx.cs" Inherits="NPetshop.Web.UserControls.Accounts.NewAccount" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
+<uc1:banner id="Banner" runat="server"></uc1:banner><uc1:topbar id="TopBar" runat="server"></uc1:topbar>
+<div style="MARGIN-TOP: 0px; MARGIN-LEFT: 50px"><B>You are a new customer : sign up for 
+		an account.</B>
+	<br>
+	<uc1:account id="ucAccount" runat="server"></uc1:account><asp:literal id="LiteralMessage" runat="server"></asp:literal>
+	<table cellSpacing="0" cellPadding="0" width="600" border="0">
+		<tr>
+			<td align="right"><asp:button id="ButtonCreateNewAccount" runat="server" Text="Create New Account"></asp:button>&nbsp;
+				<asp:button id="ButtonCancel" runat="server" Text="Cancel" CausesValidation="False"></asp:button></td>
+		</tr>
+	</table>
+</div>

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/NewAccount.ascx.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/NewAccount.ascx.cs?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/NewAccount.ascx.cs (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/NewAccount.ascx.cs Sun Jun 19 07:45:17 2005
@@ -0,0 +1,84 @@
+using NPetshop.Presentation;
+
+namespace NPetshop.Web.UserControls.Accounts
+{
+	using System;
+	using System.Data;
+	using System.Drawing;
+	using System.Web;
+	using System.Web.UI.WebControls;
+	using System.Web.UI.HtmlControls;
+
+
+	/// <summary>
+	/// Description résumée de NewAccount.
+	/// </summary>
+	public class NewAccount : NPetshopUC
+	{
+		protected System.Web.UI.WebControls.Literal LiteralMessage;
+		protected System.Web.UI.WebControls.Button ButtonCreateNewAccount;
+		protected System.Web.UI.WebControls.Button ButtonCancel;
+		protected NPetshop.Web.UserControls.Accounts.AccountUI ucAccount;
+		private AccountController _accountController = null;
+
+		public AccountController AccountController
+		{
+			set { _accountController = value; }
+		}
+
+		private void Page_Load(object sender, System.EventArgs e)
+		{
+			// Placer ici le code utilisateur pour initialiser la page
+		}
+
+		private void ButtonCreateNewAccount_Click(object sender, System.EventArgs e)
+		{
+			if (Page.IsValid)
+			{
+				_accountController.Account = ucAccount.Account;
+
+				try
+				{
+					_accountController.CreateNewAccount();
+				}
+				catch
+				{
+					
+				}
+//				catch(NPetshop.Presentation.Exceptions.LoginAlreadyExistsException)
+//				{
+//					LiteralMessage.Text = "Login already exist.";
+//				}
+			}
+		}
+
+		private void ButtonCancel_Click(object sender, System.EventArgs e)
+		{
+//			AbstractWebAction action = new ShowStartPageAction(Context);
+//			this.CurrentController.NextView = action.NextViewToDisplay;
+		}
+
+
+		#region Code généré par le Concepteur Web Form
+		override protected void OnInit(EventArgs e)
+		{
+			//
+			// CODEGEN : Cet appel est requis par le Concepteur Web Form ASP.NET.
+			//
+			InitializeComponent();
+			base.OnInit(e);
+		}
+		
+		/// <summary>
+		///		Méthode requise pour la prise en charge du concepteur - ne modifiez pas
+		///		le contenu de cette méthode avec l'éditeur de code.
+		/// </summary>
+		private void InitializeComponent()
+		{
+			this.Load += new System.EventHandler(this.Page_Load);
+			this.ButtonCreateNewAccount.Click += new System.EventHandler(this.ButtonCreateNewAccount_Click);
+			this.ButtonCancel.Click += new System.EventHandler(this.ButtonCancel_Click);
+		}
+		#endregion
+	}
+}

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/NewAccount.ascx.resx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/NewAccount.ascx.resx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/NewAccount.ascx.resx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/NewAccount.ascx.resx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 1.3
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">1.3</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1">this is my long string</data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        [base64 mime encoded serialized .NET Framework object]
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        [base64 mime encoded string representing a byte array form of the .NET Framework object]
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used forserialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>1.3</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="$this.TrayAutoArrange" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </data>
+  <data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </data>
+  <data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>Private</value>
+  </data>
+</root>
\ No newline at end of file

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignIn.ascx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignIn.ascx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignIn.ascx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignIn.ascx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,39 @@
+<%@ Register TagPrefix="uc1" TagName="TopBar" Src="../TopBar.ascx" %>
+<%@ Register TagPrefix="uc1" TagName="Banner" Src="../Banner.ascx" %>
+<%@ Control Language="c#" AutoEventWireup="false" Codebehind="SignIn.ascx.cs" Inherits="NPetshop.Web.UserControls.Accounts.SignIn" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
+<uc1:Banner id="Banner" runat="server"></uc1:Banner>
+<uc1:TopBar id="TopBar" runat="server"></uc1:TopBar>
+<div style="MARGIN-TOP:50px;MARGIN-LEFT:50px">
+	<span class="title">Are you a new user?</span>
+	<asp:LinkButton id="LinkbuttonRegister" CausesValidation="False" CommandName="register" runat="server" EnableViewState="False">Register</asp:LinkButton>
+	<p>
+		<span class="title">Or a registered user?</span>
+	<p>
+		<table cellpadding="1" cellspacing="0">
+			<tr>
+				<td class="label">Login :</td>
+				<td>
+					<asp:textbox id="TextBoxLogin" onfocus="this.className='textBox-on'" onblur="this.className='textBox'"
+						CssClass="textBox" runat="server" columns="15" maxlength="20" />
+					<asp:requiredfieldvalidator id="valUserId" runat="server" controltovalidate="TextBoxLogin" errormessage="Please enter login."
+						enableclientscript="False" />
+				</td>
+			</tr>
+			<tr>
+				<td class="label">Password :</td>
+				<td>
+					<asp:textbox id="TextBoxPassword" CssClass="textBox" onfocus="this.className='textBox-on'" onblur="this.className='textBox'"
+						runat="server" columns="15" maxlength="20" textmode="Password" />
+					<asp:requiredfieldvalidator id="valPassword" runat="server" controltovalidate="TextBoxPassword" errormessage="Please enter password."
+						enableclientscript="False" />
+				</td>
+			</tr>
+			<tr>
+				<td colspan="2" align="right">
+					<asp:Button id="ButtonLogIn" runat="server" Text="Log In"></asp:Button>
+				</td>
+			</tr>
+		</table>
+		<asp:Literal id="LiteralMessage" runat="server"></asp:Literal>
+	</p>
+</div>

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignIn.ascx.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignIn.ascx.cs?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignIn.ascx.cs (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignIn.ascx.cs Sun Jun 19 07:45:17 2005
@@ -0,0 +1,76 @@
+using System;
+using System.Web.UI.WebControls;
+using NPetshop.Presentation;
+
+namespace NPetshop.Web.UserControls.Accounts
+{
+	/// <summary>
+	/// Description résumée de SigneOn.
+	/// </summary>
+	public class SignIn : NPetshopUC
+	{
+		protected RequiredFieldValidator valUserId;
+		protected TextBox TextBoxLogin;
+		protected TextBox TextBoxPassword;
+		protected Literal LiteralMessage;
+		protected Button ButtonLogIn;
+		protected Button ButtonRegister;
+		protected LinkButton LinkbuttonRegister;
+		protected RequiredFieldValidator valPassword;
+		private AccountController _accountController = null;
+
+		public AccountController AccountController
+		{
+			set { _accountController = value; }
+		}
+
+		private void Page_Load(object sender, EventArgs e)
+		{
+			this.SetFocus(this.TextBoxLogin);
+		}
+
+		private void LinkbuttonRegister_Click(object sender, EventArgs e)
+		{
+			_accountController.RegisterUser();
+		}
+
+		private void ButtonLogIn_Click(object sender, EventArgs e)
+		{
+			if (Page.IsValid)
+			{
+				_accountController.Account.Login = TextBoxLogin.Text;
+				_accountController.Account.Password = TextBoxPassword.Text;
+
+				if (_accountController.TryToAuthenticate()==false)
+				{
+					LiteralMessage.Text = "Invalid login or password.  SignIn failed.";
+				}
+			}		
+		}
+
+		#region Code généré par le Concepteur Web Form
+		override protected void OnInit(EventArgs e)
+		{
+			//
+			// CODEGEN : Cet appel est requis par le Concepteur Web Form ASP.NET.
+			//
+			InitializeComponent();
+			base.OnInit(e);
+		}
+		
+		/// <summary>
+		///		Méthode requise pour la prise en charge du concepteur - ne modifiez pas
+		///		le contenu de cette méthode avec l'éditeur de code.
+		/// </summary>
+		private void InitializeComponent()
+		{
+			this.ButtonLogIn.Click += new EventHandler(this.ButtonLogIn_Click);
+			this.LinkbuttonRegister.Click += new EventHandler(this.LinkbuttonRegister_Click);
+			this.Load += new EventHandler(this.Page_Load);
+
+		}
+		#endregion
+
+
+	}
+}

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignIn.ascx.resx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignIn.ascx.resx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignIn.ascx.resx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignIn.ascx.resx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 1.3
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">1.3</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1">this is my long string</data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        [base64 mime encoded serialized .NET Framework object]
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        [base64 mime encoded string representing a byte array form of the .NET Framework object]
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used forserialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>1.3</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="$this.TrayAutoArrange" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </data>
+  <data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </data>
+  <data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>Private</value>
+  </data>
+</root>
\ No newline at end of file

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignOut.ascx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignOut.ascx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignOut.ascx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignOut.ascx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,14 @@
+<%@ Register TagPrefix="uc1" TagName="TopBar" Src="../TopBar.ascx" %>
+<%@ Register TagPrefix="uc1" TagName="Banner" Src="../Banner.ascx" %>
+<%@ Control Language="c#" AutoEventWireup="false" Codebehind="SignOut.ascx.cs" Inherits="NPetshop.Web.UserControls.Accounts.SignOut" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
+<uc1:Banner id="Banner" runat="server"></uc1:Banner>
+<uc1:TopBar id="TopBar" runat="server"></uc1:TopBar>
+<div class="text" style="MARGIN-TOP: 50px; MARGIN-LEFT: 50px">
+	<P>You are signed out.</P>
+	<P>Thank you for shopping.</P>
+	<P>
+		You may
+		<asp:LinkButton id="LinkButtonSignIn" runat="server" CommandName="signIn" CausesValidation="False">SIGN IN</asp:LinkButton>
+		again.
+	</P>
+</div>

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignOut.ascx.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignOut.ascx.cs?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignOut.ascx.cs (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignOut.ascx.cs Sun Jun 19 07:45:17 2005
@@ -0,0 +1,52 @@
+using System;
+using System.Web.UI.WebControls;
+using NPetshop.Presentation;
+
+namespace NPetshop.Web.UserControls.Accounts
+{
+	/// <summary>
+	/// Description résumée de SigneOut.
+	/// </summary>
+	public class SignOut : NPetshopUC
+	{
+		protected LinkButton LinkButtonSignIn;
+		private AccountController _accountController = null;
+
+		public AccountController AccountController
+		{
+			set { _accountController = value; }
+		}
+
+		private void Page_Load(object sender, EventArgs e)
+		{
+		}
+
+		private void LinkButtonSignIn_Click(object sender, EventArgs e)
+		{
+			_accountController.SignIn();
+		}
+
+		#region Code généré par le Concepteur Web Form
+		override protected void OnInit(EventArgs e)
+		{
+			//
+			// CODEGEN : Cet appel est requis par le Concepteur Web Form ASP.NET.
+			//
+			InitializeComponent();
+			base.OnInit(e);
+		}
+		
+		/// <summary>
+		///		Méthode requise pour la prise en charge du concepteur - ne modifiez pas
+		///		le contenu de cette méthode avec l'éditeur de code.
+		/// </summary>
+		private void InitializeComponent()
+		{
+			this.LinkButtonSignIn.Click += new EventHandler(this.LinkButtonSignIn_Click);
+			this.Load += new EventHandler(this.Page_Load);
+
+		}
+		#endregion
+
+	}
+}

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignOut.ascx.resx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignOut.ascx.resx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignOut.ascx.resx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Accounts/SignOut.ascx.resx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 1.3
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">1.3</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1">this is my long string</data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        [base64 mime encoded serialized .NET Framework object]
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        [base64 mime encoded string representing a byte array form of the .NET Framework object]
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used forserialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>1.3</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="$this.TrayAutoArrange" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </data>
+  <data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </data>
+  <data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>Private</value>
+  </data>
+</root>
\ No newline at end of file

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/AdviceBanner.ascx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/AdviceBanner.ascx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/AdviceBanner.ascx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/AdviceBanner.ascx Sun Jun 19 07:45:17 2005
@@ -0,0 +1 @@
+<%@ Control Language="c#" AutoEventWireup="false" Codebehind="AdviceBanner.ascx.cs" Inherits="NPetshop.Web.UserControls.AdviceBanner" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/AdviceBanner.ascx.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/AdviceBanner.ascx.cs?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/AdviceBanner.ascx.cs (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/AdviceBanner.ascx.cs Sun Jun 19 07:45:17 2005
@@ -0,0 +1,41 @@
+namespace NPetshop.Web.UserControls
+{
+	using System;
+	using System.Data;
+	using System.Drawing;
+	using System.Web;
+	using System.Web.UI.WebControls;
+	using System.Web.UI.HtmlControls;
+
+	/// <summary>
+	/// Description résumée de AdviceBanner.
+	/// </summary>
+	public class AdviceBanner : System.Web.UI.UserControl
+	{
+
+		private void Page_Load(object sender, System.EventArgs e)
+		{
+			// Placer ici le code utilisateur pour initialiser la page
+		}
+
+		#region Code généré par le Concepteur Web Form
+		override protected void OnInit(EventArgs e)
+		{
+			//
+			// CODEGEN : Cet appel est requis par le Concepteur Web Form ASP.NET.
+			//
+			InitializeComponent();
+			base.OnInit(e);
+		}
+		
+		/// <summary>
+		///		Méthode requise pour la prise en charge du concepteur - ne modifiez pas
+		///		le contenu de cette méthode avec l'éditeur de code.
+		/// </summary>
+		private void InitializeComponent()
+		{
+			this.Load += new System.EventHandler(this.Page_Load);
+		}
+		#endregion
+	}
+}

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/AdviceBanner.ascx.resx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/AdviceBanner.ascx.resx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/AdviceBanner.ascx.resx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/AdviceBanner.ascx.resx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<root>
+	<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+		<xsd:element name="root" msdata:IsDataSet="true">
+			<xsd:complexType>
+				<xsd:choice maxOccurs="unbounded">
+					<xsd:element name="data">
+						<xsd:complexType>
+							<xsd:sequence>
+								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+								<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+							</xsd:sequence>
+							<xsd:attribute name="name" type="xsd:string" />
+							<xsd:attribute name="type" type="xsd:string" />
+							<xsd:attribute name="mimetype" type="xsd:string" />
+						</xsd:complexType>
+					</xsd:element>
+					<xsd:element name="resheader">
+						<xsd:complexType>
+							<xsd:sequence>
+								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+							</xsd:sequence>
+							<xsd:attribute name="name" type="xsd:string" use="required" />
+						</xsd:complexType>
+					</xsd:element>
+				</xsd:choice>
+			</xsd:complexType>
+		</xsd:element>
+	</xsd:schema>
+	<resheader name="ResMimeType">
+		<value>text/microsoft-resx</value>
+	</resheader>
+	<resheader name="Version">
+		<value>1.0.0.0</value>
+	</resheader>
+	<resheader name="Reader">
+		<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+	</resheader>
+	<resheader name="Writer">
+		<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+	</resheader>
+</root>

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Banner.ascx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Banner.ascx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Banner.ascx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Banner.ascx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,23 @@
+<%@ Control Language="c#" AutoEventWireup="false" Codebehind="Banner.ascx.cs" Inherits="NPetshop.Web.UserControls.Banner" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
+<%@ Register TagPrefix="uc1" TagName="Search" Src="Catalog/Search.ascx" %>
+<table cellspacing="0" cellpadding="0" width="100%" height="38" background="@images/top_stripe2.gif"
+	border="0">
+	<tr>
+		<td align="right">
+			<font class="menuOrange">
+				<asp:LinkButton id="LinkbuttonSignOut" CssClass="menuOrange" runat="server" CommandName="signOut" EnableViewState="true">SIGN OUT |</asp:LinkButton>
+				<asp:LinkButton CausesValidation="False" id="LinkbuttonSignIn" CommandName="signIn" CssClass="menuOrange" runat="server"
+					EnableViewState="False">SIGN IN</asp:LinkButton>
+				&nbsp; |
+				<asp:LinkButton CausesValidation="False" id="LinkbuttonAccount" CssClass="menuOrange" runat="server"
+					EnableViewState="False">MY ACCOUNT</asp:LinkButton>
+				&nbsp; |
+				<asp:LinkButton CausesValidation="False" id="LinkbuttonCart" CommandName="showCart" CssClass="menuOrange" runat="server"
+					EnableViewState="False">
+					<img ID="cart" src="@images/cart.gif" align="absMiddle" border="0" /></asp:LinkButton>
+				|&nbsp; <img ID="Img2" runat="server" src="/@Images/space.gif" width="20" height="1">
+				<uc1:Search id="Search" runat="server"></uc1:Search>
+			</font><img src="@Images/space.gif" width="20" height="1" ID="Img1">
+		</td>
+	</tr>
+</table>

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Banner.ascx.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Banner.ascx.cs?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Banner.ascx.cs (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Banner.ascx.cs Sun Jun 19 07:45:17 2005
@@ -0,0 +1,96 @@
+using NPetshop.Presentation;
+using Castle.MVC.Controllers;// Attribut
+
+namespace NPetshop.Web.UserControls
+{
+	using System;
+	using System.Data;
+	using System.Drawing;
+	using System.Web;
+	using System.Web.UI.WebControls;
+	using System.Web.UI.HtmlControls;
+
+
+	/// <summary>
+	/// Description résumée de Banner.
+	/// </summary>
+	public class Banner : NPetshopUC
+	{
+		protected System.Web.UI.WebControls.LinkButton LinkbuttonSignOut;
+		protected System.Web.UI.WebControls.LinkButton LinkbuttonSignIn;
+		protected System.Web.UI.HtmlControls.HtmlImage Img2;
+		protected System.Web.UI.WebControls.LinkButton LinkbuttonAccount;
+		private AccountController _accountController = null;
+		protected System.Web.UI.WebControls.LinkButton LinkbuttonCart;
+		private ShoppingController _shoppingController = null;
+
+		public ShoppingController ShoppingController
+		{
+			set { _shoppingController = value; }
+		}
+
+		public AccountController AccountController
+		{
+			set { _accountController = value; }
+		}
+
+		private void Page_Load(object sender, System.EventArgs e)
+		{
+		}
+
+		private void LinkbuttonSignIn_Click(object sender, System.EventArgs e)
+		{
+			_accountController.SignIn();
+		}
+
+		private void LinkbuttonSignOut_Click(object sender, System.EventArgs e)
+		{
+			_accountController.SignOut();
+		}
+
+		private void LinkbuttonAccount_Click(object sender, System.EventArgs e)
+		{
+			_accountController.EditAccount();
+		}
+
+		protected override void OnPreRender(System.EventArgs e)
+		{
+			bool userLoggedIn = (this.NPetshopState.CurrentUser!= null);
+
+			LinkbuttonSignIn.Visible = ! userLoggedIn;
+			LinkbuttonSignOut.Visible = userLoggedIn;		
+		}
+
+		private void LinkbuttonCart_Click(object sender, System.EventArgs e)
+		{
+			_shoppingController.ShowShoppingCart();
+		}
+
+		#region Code généré par le Concepteur Web Form
+		override protected void OnInit(EventArgs e)
+		{
+			//
+			// CODEGEN : Cet appel est requis par le Concepteur Web Form ASP.NET.
+			//
+			InitializeComponent();
+			base.OnInit(e);
+		}
+		
+		/// <summary>
+		///		Méthode requise pour la prise en charge du concepteur - ne modifiez pas
+		///		le contenu de cette méthode avec l'éditeur de code.
+		/// </summary>
+		private void InitializeComponent()
+		{
+			this.LinkbuttonSignOut.Click += new System.EventHandler(this.LinkbuttonSignOut_Click);
+			this.LinkbuttonSignIn.Click += new System.EventHandler(this.LinkbuttonSignIn_Click);
+			this.LinkbuttonAccount.Click += new System.EventHandler(this.LinkbuttonAccount_Click);
+			this.LinkbuttonCart.Click += new System.EventHandler(this.LinkbuttonCart_Click);
+			this.Load += new System.EventHandler(this.Page_Load);
+
+		}
+		#endregion
+
+
+	}
+}

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Banner.ascx.resx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Banner.ascx.resx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Banner.ascx.resx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Banner.ascx.resx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 1.3
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">1.3</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1">this is my long string</data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        [base64 mime encoded serialized .NET Framework object]
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        [base64 mime encoded string representing a byte array form of the .NET Framework object]
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used forserialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>1.3</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="$this.TrayAutoArrange" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </data>
+  <data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </data>
+  <data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>Private</value>
+  </data>
+</root>
\ No newline at end of file

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Bill.ascx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Bill.ascx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Bill.ascx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Bill.ascx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,11 @@
+<%@ Register TagPrefix="uc1" TagName="TopBar" Src="../TopBar.ascx" %>
+<%@ Register TagPrefix="uc1" TagName="Banner" Src="../Banner.ascx" %>
+<%@ Control Language="c#" AutoEventWireup="false" Codebehind="Bill.ascx.cs" Inherits="NPetshop.Web.UserControls.Billing.Bill" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
+<%@ Register TagPrefix="uc1" TagName="BillUI" Src="BillUI.ascx" %>
+<uc1:Banner id="Banner" runat="server"></uc1:Banner>
+<uc1:TopBar id="TopBar" runat="server"></uc1:TopBar>
+<div style="MARGIN-TOP: 20px; MARGIN-LEFT: 50px">
+	<span class="title">Order Complete!</span>
+	<p/>
+		<uc1:BillUI id="ucBill" runat="server"></uc1:BillUI>
+</div>

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Bill.ascx.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Bill.ascx.cs?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Bill.ascx.cs (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Bill.ascx.cs Sun Jun 19 07:45:17 2005
@@ -0,0 +1,47 @@
+using System;
+
+namespace NPetshop.Web.UserControls.Billing
+{
+	/// <summary>
+	///		Summary description for Bill.
+	/// </summary>
+	public class Bill : NPetshopUC
+	{
+		protected BillUI ucBill;
+
+
+		private void Page_Load(object sender, EventArgs e)
+		{
+			if (!IsPostBack)
+			{
+				DataBind();	
+			}
+		}
+
+		public override void DataBind()
+		{
+			ucBill.Order = this.NPetshopState.CurrentOrder;
+		}
+
+		#region Web Form Designer generated code
+		override protected void OnInit(EventArgs e)
+		{
+			//
+			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
+			//
+			InitializeComponent();
+			base.OnInit(e);
+		}
+		
+		/// <summary>
+		///		Required method for Designer support - do not modify
+		///		the contents of this method with the code editor.
+		/// </summary>
+		private void InitializeComponent()
+		{
+			this.Load += new EventHandler(this.Page_Load);
+
+		}
+		#endregion
+	}
+}

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Bill.ascx.resx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Bill.ascx.resx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Bill.ascx.resx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Bill.ascx.resx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 1.3
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">1.3</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1">this is my long string</data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        [base64 mime encoded serialized .NET Framework object]
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        [base64 mime encoded string representing a byte array form of the .NET Framework object]
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used forserialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>1.3</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </data>
+  <data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>Private</value>
+  </data>
+  <data name="$this.TrayAutoArrange" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </data>
+</root>
\ No newline at end of file

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/BillUI.ascx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/BillUI.ascx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/BillUI.ascx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/BillUI.ascx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,79 @@
+<%@ Register TagPrefix="uc1" TagName="AddressUI" Src="../Accounts/AddressUI.ascx" %>
+<%@ Control Language="c#" AutoEventWireup="false" Codebehind="BillUI.ascx.cs" Inherits="NPetshop.Web.UserControls.Billing.BillUI" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
+<%@ Register TagPrefix="uc1" TagName="AddressStatic" Src="../Accounts/AddressStatic.ascx" %>
+<fieldset style="WIDTH:600px">
+	<legend class="label">
+		Payment Information</legend>
+	<table cellpadding="0" cellspacing="0" border="0">
+		<tr>
+			<td class="label">Card Type::</td>
+			<td><asp:Literal id="LiteralCardType" runat="server"></asp:Literal></td>
+		</tr>
+		<tr>
+			<td class="label">Card Number:</td>
+			<td><asp:Literal id="LiteralCardNumber" runat="server"></asp:Literal></td>
+		</tr>
+		<tr>
+			<td class="label">Card Expiration:</td>
+			<td><asp:Literal id="LiteralCardExpiration" runat="server"></asp:Literal></td>
+		</tr>
+	</table>
+</fieldset>
+<fieldset style="WIDTH:600px">
+	<legend class="label">
+		Billing Address</legend>
+	<uc1:AddressStatic id="billingAddress" runat="server"></uc1:AddressStatic>
+</fieldset>
+<fieldset style="WIDTH:600px">
+	<legend class="label">
+		Shipping Address</legend>
+	<uc1:AddressStatic id="shippingAddress" runat="server"></uc1:AddressStatic>
+</fieldset>
+<fieldset style="WIDTH:600px">
+	<legend class="label">
+		Status</legend>
+	<table cellpadding="0" cellspacing="0" border="0">
+		<TBODY>
+			<tr>
+				<td class="label">Date:</td>
+				<td><asp:Literal id="LiteralOrderDate" runat="server"></asp:Literal></td>
+			</tr>
+			<tr vAlign="top">
+				<td class="label">Items:</td>
+				<td>
+					<asp:repeater id="RepeaterItems" runat="server">
+						<headertemplate>
+							<table cellpadding="0" cellspacing="1">
+								<tr class="gridHead">
+									<td>Line</td>
+									<td>Item</td>
+									<td>Product</td>
+									<td>Price</td>
+									<td>Quantity</td>
+									<td>Subtotal</td>
+								</tr>
+						</headertemplate>
+						<itemtemplate>
+							<tr class="gridItem">
+								<td><%# DataBinder.Eval(Container.DataItem, "LineNumber") %></td>
+								<td><%# DataBinder.Eval(Container.DataItem, "Item.Id") %></td>
+								<td><%# DataBinder.Eval(Container.DataItem, "Item.Product.Id") %></td>
+								<td class="num"><%# DataBinder.Eval(Container.DataItem, "Item.ListPrice", "{0:c}") %></td>
+								<td class="num"><%# DataBinder.Eval(Container.DataItem, "Quantity") %></td>
+								<td class="num"><%# DataBinder.Eval(Container.DataItem, "Total", "{0:c}") %></td>
+							</tr>
+						</itemtemplate>
+						<footertemplate>
+	</table>
+	</footertemplate> </asp:repeater></TD></TR>
+	<tr>
+		<td label class="label">Total:</td>
+		<td class="numFooter" colspan="5">
+			<span class="label">
+				<asp:Literal id="LiteralTotal" runat="server"></asp:Literal>
+			</span>
+		</td>
+	</tr>
+	</TBODY></TABLE>
+	<br>
+</fieldset>

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/BillUI.ascx.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/BillUI.ascx.cs?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/BillUI.ascx.cs (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/BillUI.ascx.cs Sun Jun 19 07:45:17 2005
@@ -0,0 +1,71 @@
+namespace NPetshop.Web.UserControls.Billing
+{
+	using System;
+	using System.Data;
+	using System.Drawing;
+	using System.Web;
+	using System.Web.UI.WebControls;
+	using System.Web.UI.HtmlControls;
+
+	using NPetshop.Domain.Billing;
+
+	/// <summary>
+	///		Summary description for BillUI.
+	/// </summary>
+	public class BillUI : NPetshopUC
+	{
+		protected System.Web.UI.WebControls.Literal LiteralCardNumber;
+		protected System.Web.UI.WebControls.Literal LiteralCardExpiration;
+		protected System.Web.UI.WebControls.Literal LiteralCardType;
+		protected System.Web.UI.WebControls.Literal LiteralOrderDate;
+		protected NPetshop.Web.UserControls.Accounts.AddressStatic billingAddress;
+		protected System.Web.UI.WebControls.Literal LiteralTotal;
+		protected System.Web.UI.WebControls.Repeater RepeaterItems;
+		protected NPetshop.Web.UserControls.Accounts.AddressStatic shippingAddress;
+
+		public Order Order
+		{
+			set
+			{
+				LiteralCardNumber.Text = value.CreditCard.CardNumber;
+				LiteralCardExpiration.Text = value.CreditCard.CardExpiration;
+				LiteralCardType.Text = value.CreditCard.CardType;
+
+				LiteralOrderDate.Text = value.OrderDate.ToShortDateString();
+
+				billingAddress.Address = value.BillingAddress;
+				shippingAddress.Address = value.ShippingAddress;
+
+				RepeaterItems.DataSource = value.LineItems;
+				RepeaterItems.DataBind();
+				LiteralTotal.Text = value.TotalPrice.ToString("c");
+			}
+		}
+
+		private void Page_Load(object sender, System.EventArgs e)
+		{
+			// Put user code to initialize the page here
+		}
+
+		#region Web Form Designer generated code
+		override protected void OnInit(EventArgs e)
+		{
+			//
+			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
+			//
+			InitializeComponent();
+			base.OnInit(e);
+		}
+		
+		/// <summary>
+		///		Required method for Designer support - do not modify
+		///		the contents of this method with the code editor.
+		/// </summary>
+		private void InitializeComponent()
+		{
+			this.Load += new System.EventHandler(this.Page_Load);
+
+		}
+		#endregion
+	}
+}

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/BillUI.ascx.resx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/BillUI.ascx.resx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/BillUI.ascx.resx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/BillUI.ascx.resx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 1.3
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">1.3</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1">this is my long string</data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        [base64 mime encoded serialized .NET Framework object]
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        [base64 mime encoded string representing a byte array form of the .NET Framework object]
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used forserialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>1.3</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </data>
+  <data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>Private</value>
+  </data>
+  <data name="$this.TrayAutoArrange" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </data>
+</root>
\ No newline at end of file

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Confirmation.ascx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Confirmation.ascx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Confirmation.ascx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Confirmation.ascx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,19 @@
+<%@ Register TagPrefix="uc1" TagName="BillUI" Src="BillUI.ascx" %>
+<%@ Control Language="c#" AutoEventWireup="false" Codebehind="Confirmation.ascx.cs" Inherits="NPetshop.Web.UserControls.Billing.Confirmation" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
+<%@ Register TagPrefix="uc1" TagName="Banner" Src="../Banner.ascx" %>
+<%@ Register TagPrefix="uc1" TagName="TopBar" Src="../TopBar.ascx" %>
+<uc1:Banner id="Banner" runat="server"></uc1:Banner>
+<uc1:TopBar id="TopBar" runat="server"></uc1:TopBar>
+<div style="MARGIN-TOP: 20px; MARGIN-LEFT: 50px">
+	<span class="title">Please confirm the information below and then press continue...</span>
+	<p>
+		<uc1:BillUI id="ucBill" runat="server"></uc1:BillUI>
+		<table width="600">
+			<tr>
+				<td align="right">
+					<asp:Button id="ButtonContinue" CommandName="bill" runat="server" Text="Continue"></asp:Button>
+				</td>
+			</tr>
+		</table>
+	</p>
+</div>

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Confirmation.ascx.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Confirmation.ascx.cs?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Confirmation.ascx.cs (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Confirmation.ascx.cs Sun Jun 19 07:45:17 2005
@@ -0,0 +1,68 @@
+using NPetshop.Presentation;
+
+namespace NPetshop.Web.UserControls.Billing
+{
+	using System;
+	using System.Data;
+	using System.Drawing;
+	using System.Web;
+	using System.Web.UI.WebControls;
+	using System.Web.UI.HtmlControls;
+
+	/// <summary>
+	///		Summary description for Confirmation.
+	/// </summary>
+	public class Confirmation : NPetshopUC
+	{
+		protected System.Web.UI.WebControls.Button ButtonContinue;
+		protected NPetshop.Web.UserControls.Billing.BillUI ucBill;
+		private BillingController _billingController = null;
+
+		public BillingController BillingController
+		{
+			set { _billingController = value; }
+		}
+
+		private void Page_Load(object sender, System.EventArgs e)
+		{
+			if (!IsPostBack)
+			{
+				DataBind();	
+			}
+		}
+
+		public override void DataBind()
+		{
+			ucBill.Order = this.NPetshopState.CurrentOrder;
+		}
+
+
+		private void ButtonContinue_Click(object sender, System.EventArgs e)
+		{
+			_billingController.ConfirmOrder(this.NPetshopState.CurrentOrder);
+		}
+
+		#region Web Form Designer generated code
+		override protected void OnInit(EventArgs e)
+		{
+			//
+			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
+			//
+			InitializeComponent();
+			base.OnInit(e);
+		}
+		
+		/// <summary>
+		///		Required method for Designer support - do not modify
+		///		the contents of this method with the code editor.
+		/// </summary>
+		private void InitializeComponent()
+		{
+			this.ButtonContinue.Click += new System.EventHandler(this.ButtonContinue_Click);
+			this.Load += new System.EventHandler(this.Page_Load);
+
+		}
+		#endregion
+
+	}
+}

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Confirmation.ascx.resx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Confirmation.ascx.resx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Confirmation.ascx.resx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Confirmation.ascx.resx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 1.3
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">1.3</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1">this is my long string</data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        [base64 mime encoded serialized .NET Framework object]
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        [base64 mime encoded string representing a byte array form of the .NET Framework object]
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used forserialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>1.3</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="$this.TrayAutoArrange" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </data>
+  <data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </data>
+  <data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>Private</value>
+  </data>
+</root>
\ No newline at end of file

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Payment.ascx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Payment.ascx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Payment.ascx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Payment.ascx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,91 @@
+<%@ Control Language="c#" AutoEventWireup="false" Codebehind="Payment.ascx.cs" Inherits="NPetshop.Web.UserControls.Billing.Payment" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
+<%@ Register TagPrefix="uc1" TagName="AddressUI" Src="../Accounts/AddressUI.ascx" %>
+<%@ Register TagPrefix="uc1" TagName="Banner" Src="../Banner.ascx" %>
+<%@ Register TagPrefix="uc1" TagName="TopBar" Src="../TopBar.ascx" %>
+<uc1:Banner id="Banner" runat="server"></uc1:Banner>
+<uc1:TopBar id="TopBar" runat="server"></uc1:TopBar>
+<div style="MARGIN-TOP: 20px; MARGIN-LEFT: 50px">
+	<span class="title">Payment Information</span>
+	<P />
+	<fieldset style="WIDTH:600px">
+		<legend class="label">
+			Credit Card</legend>
+		<table cellSpacing="0" cellPadding="1">
+			<tr>
+				<td class="label" width="125">Credit Card Type:</td>
+				<td>
+					<asp:dropdownlist id="dropdownlistCardType" runat="server">
+						<asp:listitem>Visa</asp:listitem>
+						<asp:listitem>MasterCard</asp:listitem>
+						<asp:listitem>American Express</asp:listitem>
+					</asp:dropdownlist></td>
+			</tr>
+			<tr>
+				<td class="label">Card Number:</td>
+				<td>
+					<asp:textbox id="textboxCardNumber" runat="server" maxlength="20" columns="20" text="9999 9999 9999 9999"></asp:textbox>
+					<asp:requiredfieldvalidator id="valCardNumber" runat="server" enableclientscript="False" errormessage="Please enter card number."
+						controltovalidate="textboxCardNumber"></asp:requiredfieldvalidator></td>
+			</tr>
+			<tr>
+				<td class="label">Expiration Date:</td>
+				<td>
+					<TABLE cellSpacing="0" cellPadding="0">
+						<tr>
+							<td class="label">Month:</td>
+							<td>
+								<asp:dropdownlist id="dropdownlistMonth" runat="server">
+									<asp:listitem>01</asp:listitem>
+									<asp:listitem>02</asp:listitem>
+									<asp:listitem>03</asp:listitem>
+									<asp:listitem>04</asp:listitem>
+									<asp:listitem>05</asp:listitem>
+									<asp:listitem>06</asp:listitem>
+									<asp:listitem>07</asp:listitem>
+									<asp:listitem>08</asp:listitem>
+									<asp:listitem>09</asp:listitem>
+									<asp:listitem>10</asp:listitem>
+									<asp:listitem>11</asp:listitem>
+									<asp:listitem>12</asp:listitem>
+								</asp:dropdownlist></td>
+							<td class="label" width="50">Year:</td>
+							<td>
+								<asp:dropdownlist id="dropdownlistYear" runat="server">
+									<asp:listitem>2004</asp:listitem>
+									<asp:listitem>2005</asp:listitem>
+									<asp:listitem>2006</asp:listitem>
+									<asp:listitem>2007</asp:listitem>
+									<asp:listitem>2008</asp:listitem>
+								</asp:dropdownlist>
+							</td>
+						</tr>
+					</TABLE>
+				</td>
+			</tr>
+		</table>
+	</fieldset>
+	<fieldset style="WIDTH:600px">
+		<legend class="label">
+			Billing Address</legend>
+		<uc1:AddressUI id="ucBillingAddress" runat="server"></uc1:AddressUI>
+	</fieldset>
+	<fieldset style="WIDTH:600px">
+		<legend class="label">
+			Shipping Address</legend>
+		<table cellSpacing="0" cellPadding="1">
+			<tr>
+				<td>
+					<asp:checkbox id="checkboxShipBilling" runat="server" checked="True"></asp:checkbox></td>
+				<td>Ship to billing address</td>
+			</tr>
+		</table>
+	</fieldset>
+	<table cellSpacing="0" cellPadding="1" width="600">
+		<tr>
+			<td colspan="2">&nbsp;</td>
+		</tr>
+		<tr>
+			<td colspan="2" align="right"><asp:button id="ButtonSubmit" runat="server" Text="Submit"></asp:button></td>
+		</tr>
+	</table>
+</div>

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Payment.ascx.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Payment.ascx.cs?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Payment.ascx.cs (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Payment.ascx.cs Sun Jun 19 07:45:17 2005
@@ -0,0 +1,99 @@
+using System;
+using System.Web.UI.WebControls;
+using NPetshop.Domain.Billing;
+using NPetshop.Presentation;
+using NPetshop.Web.UserControls.Accounts;
+
+namespace NPetshop.Web.UserControls.Billing
+{
+	/// <summary>
+	///		Summary description for Order.
+	/// </summary>
+	public class Payment : NPetshopUC
+	{
+		protected RequiredFieldValidator valCardNumber;
+		protected DropDownList dropdownlistCardType;
+		protected TextBox textboxCardNumber;
+		protected DropDownList dropdownlistMonth;
+		protected DropDownList dropdownlistYear;
+		protected CheckBox checkboxShipBilling;
+		protected Button ButtonSubmit;
+		protected AddressUI ucBillingAddress;
+		private BillingController _billingController = null;
+
+		public BillingController BillingController
+		{
+			set { _billingController = value; }
+		}
+
+		public Order Order
+		{
+			get
+			{
+				Order order = new Order(this.NPetshopState.CurrentUser, 
+					this.NPetshopState.CurrentShoppingCart,
+					ucBillingAddress.Address);
+		
+				CreditCard creditCard = new CreditCard();
+				creditCard.CardExpiration = dropdownlistMonth.SelectedValue +"/"+ dropdownlistYear.SelectedValue;
+				creditCard.CardNumber = textboxCardNumber.Text;
+				creditCard.CardType = dropdownlistCardType.SelectedValue;
+				order.CreditCard = creditCard;
+
+				return order;
+			} 
+			set
+			{
+
+			}
+		}
+
+		private void Page_Load(object sender, EventArgs e)
+		{
+			if (!IsPostBack)
+			{
+				DataBind();	
+			}
+		}
+
+		public override void DataBind()
+		{
+			if (this.NPetshopState.CurrentOrder == null)
+			{
+				ucBillingAddress.Address = this.NPetshopState.CurrentUser.Address;
+			}
+			else
+			{
+				ucBillingAddress.Address = this.NPetshopState.CurrentOrder.BillingAddress;
+			}
+		}
+
+		private void ButtonSubmit_Click(object sender, EventArgs e)
+		{
+			_billingController.NewOrder(this.Order, checkboxShipBilling.Checked);
+		}
+
+		#region Web Form Designer generated code
+		override protected void OnInit(EventArgs e)
+		{
+			//
+			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
+			//
+			InitializeComponent();
+			base.OnInit(e);
+		}
+		
+		/// <summary>
+		///		Required method for Designer support - do not modify
+		///		the contents of this method with the code editor.
+		/// </summary>
+		private void InitializeComponent()
+		{
+			this.ButtonSubmit.Click += new EventHandler(this.ButtonSubmit_Click);
+			this.Load += new EventHandler(this.Page_Load);
+
+		}
+		#endregion
+
+	}
+}

Added: ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Payment.ascx.resx
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Payment.ascx.resx?rev=191346&view=auto
==============================================================================
--- ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Payment.ascx.resx (added)
+++ ibatis/trunk/cs/npetshop2/NPetshop.Web/UserControls/Billing/Payment.ascx.resx Sun Jun 19 07:45:17 2005
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 1.3
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">1.3</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1">this is my long string</data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        [base64 mime encoded serialized .NET Framework object]
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        [base64 mime encoded string representing a byte array form of the .NET Framework object]
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used forserialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>1.3</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="$this.TrayAutoArrange" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </data>
+  <data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </data>
+  <data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>Private</value>
+  </data>
+</root>
\ No newline at end of file