namespace NPetshop.Web.UserControls.Shopping { using System; using System.Data; using System.Drawing; using System.Web; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using NPetshop.Domain.Shopping; using NPetshop.Presentation.Core; using NPetshop.Presentation.UserActions; /// /// Description résumée de Cart. /// public class Cart : NPetshop.Presentation.UserControl { protected System.Web.UI.WebControls.Literal LiteralTotal; protected NPetshop.Presentation.Controls.ExtendedRepeater RepeaterCart; protected System.Web.UI.WebControls.LinkButton LinkButtonPrev; protected System.Web.UI.WebControls.LinkButton LinkbuttonNext; protected System.Web.UI.WebControls.LinkButton LinkbuttonProceedCheckout; private ShoppingCart _cart = null; //Property to show total protected decimal Total { get { return _cart.Total; } } private void Page_Load(object sender, System.EventArgs e) { _cart = this.WebLocalSingleton.CurrentShoppingCart; } public override void DataBind() { bool empty = ((_cart == null) || _cart.IsEmpty); if (! empty) { RepeaterCart.DataSource = _cart; RepeaterCart.DataBind(); if (_cart.Lines.IsNextPageAvailable) { LinkbuttonNext.Visible = true; } else { LinkbuttonNext.Visible = false; } if (_cart.Lines.IsPreviousPageAvailable) { LinkButtonPrev.Visible = true; } else { LinkButtonPrev.Visible = false; } } else { LinkbuttonNext.Visible = false; LinkButtonPrev.Visible = false; LinkbuttonProceedCheckout.Visible = false; } } protected void QuantityChanged(object o, System.EventArgs e) { Page.Validate(); if (Page.IsValid) { TextBox textboxQuantity = o as System.Web.UI.WebControls.TextBox; LinkButton linkButtonRemove = textboxQuantity.Parent.FindControl("LinkButtonRemove") as LinkButton; int quantity = int.Parse(textboxQuantity.Text); string itemId = linkButtonRemove.CommandArgument.ToString(); ShoppinAction action = new ShoppinAction(this.Context); action.UpdateQuantityByItemId(itemId, quantity); } } protected void RepeaterCart_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e) { if (e.CommandName == "RemoveItem") { ShoppinAction action = new ShoppinAction(this.Context); action.RemoveItemFromCart(e.CommandArgument.ToString()); this.CurrentController.NextView = action.NextViewToDisplay; } else if (e.CommandName == "Update") { this.CurrentController.NextView = WebViews.CART; } else if (e.CommandName == "ShowItem") { CatalogAction action = new CatalogAction(this.Context); action.ShowItem(e.CommandArgument.ToString()); this.CurrentController.NextView = action.NextViewToDisplay; } } private void LinkButtonPrev_Click(object sender, System.EventArgs e) { _cart.Lines.PreviousPage(); this.CurrentController.NextView = WebViews.CART; } private void LinkbuttonNext_Click(object sender, System.EventArgs e) { _cart.Lines.NextPage(); this.CurrentController.NextView = WebViews.CART; } private void LinkbuttonProceedCheckout_Click(object sender, System.EventArgs e) { ShoppinAction action = new ShoppinAction(this.Context); action.ProceedCheckout(); 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); } /// /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas /// le contenu de cette méthode avec l'éditeur de code. /// private void InitializeComponent() { this.LinkButtonPrev.Click += new System.EventHandler(this.LinkButtonPrev_Click); this.LinkbuttonNext.Click += new System.EventHandler(this.LinkbuttonNext_Click); this.LinkbuttonProceedCheckout.Click += new System.EventHandler(this.LinkbuttonProceedCheckout_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion } }