using System; using System.Data; using System.Collections; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using CMS.CMSHelper; using CMS.Ecommerce; using CMS.EcommerceProvider; using CMS.GlobalHelper; using CMS.LicenseProvider; using CMS.SettingsProvider; using CMS.SiteProvider; public partial class CMSModules_Ecommerce_Controls_ShoppingCart_ShoppingCartCustomerSelection : ShoppingCartStep { protected override void OnLoad(EventArgs e) { base.OnLoad(e); // Check feature if (DataHelper.GetNotEmpty(URLHelper.GetCurrentDomain(), "") != "") { LicenseHelper.CheckFeatureAndRedirect(URLHelper.GetCurrentDomain(), FeatureEnum.Ecommerce); } // Mark previously selected customer if ((!ShoppingCartControl.IsCurrentStepPostBack) && (ShoppingCart.ShoppingCartCustomerID > 0)) { customerSelector.CustomerID = ShoppingCart.ShoppingCartCustomerID; } ShoppingCartControl.ButtonBack.Visible = false; customerSelector.IsLiveSite = IsLiveSite; ucCustomerNew.MessagesPlaceHolder.BasicStyles = true; } protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); customerSelector.Visible = radSelectCustomer.Checked; ucCustomerNew.Visible = radCreateCustomer.Checked; lblSelectError.Visible = !string.IsNullOrEmpty(lblSelectError.Text); } /// /// Check if form is valid. /// public override bool IsValid() { if (radSelectCustomer.Checked) { // Check if customer is selected if (customerSelector.CustomerID > 0) { return true; } else { lblSelectError.Text = GetString("shoppingcartselectcustomer.errorselect"); return false; } } if (radCreateCustomer.Checked) { // Check if new customer form is valid return ucCustomerNew.IsValid(); } return true; } /// /// Process form data. /// public override bool ProcessStep() { int customerId = 0; if (radSelectCustomer.Checked) { // Select an existing customer customerId = customerSelector.CustomerID; } if (radCreateCustomer.Checked) { // Check permissions if (!ECommerceContext.IsUserAuthorizedToModifyCustomer()) { RedirectToAccessDenied("CMS.Ecommerce", "ModifyCustomers OR EcommerceModify"); return false; } // Create a new customer customerId = ucCustomerNew.Save(); } // Assign customer and user to the shopping cart if (customerId > 0) { CustomerInfo customer = CustomerInfoProvider.GetCustomerInfo(customerId); if (customer != null) { ShoppingCart.ShoppingCartCustomerID = customer.CustomerID; if (customer.CustomerUserID > 0) { UserInfo user = UserInfoProvider.GetUserInfo(customer.CustomerUserID); if (user == null) { user = CMSContext.GlobalPublicUser; } ShoppingCart.User = user; } return true; } } return false; } }