protected void EMailButton_Click(object sender, EventArgs e) { bool error = false; MembershipUser user = ProfileContext.Current.User; if (user != null) { user.Email = tbEMail.Text; try { Membership.UpdateUser(user); } catch (Exception ex) { ErrorManager.GenerateError(ex.Message); error = true; } } else { ErrorManager.GenerateError("Current user not found!"); error = true; } if (!error) { ErrorLabel.Text = RM.GetString("ACCOUNT_EMAIL_SUCCESSFULLY_CHANGED"); } }
protected override void DoCommand(IOrderGroup order, CommandParameters cp) { Mediachase.Ibn.Web.UI.CHelper.RequireDataBind(); PurchaseOrder purchaseOrder = order as PurchaseOrder; WorkflowResults workflowResults = OrderGroupWorkflowManager.RunWorkflow(purchaseOrder, "SaveChangesWorkflow", false, false, new Dictionary <string, object> { { "PreventProcessPayment", !string.IsNullOrEmpty(order.Properties["QuoteStatus"] as string) && (order.Properties["QuoteStatus"].ToString() == Constants.Quote.RequestQuotation || order.Properties["QuoteStatus"].ToString() == Constants.Quote.RequestQuotationFinished) } }); if (workflowResults.Status != WorkflowStatus.Completed) { string msg = "Unknow error"; if (workflowResults.Exception != null) { msg = workflowResults.Exception.Message; } ErrorManager.GenerateError(msg); } else { WritePurchaseOrderChangeNotes(purchaseOrder); SavePurchaseOrderChanges(purchaseOrder); PurchaseOrderManager.UpdatePromotionUsage(purchaseOrder, purchaseOrder); OrderHelper.ExitPurchaseOrderFromEditMode(purchaseOrder.OrderGroupId); } }
/// <summary> /// Callback function for updating the cart. Before accept all changes of the cart, update the HttpContext.Current if it is null somehow. /// </summary> /// <param name="cartArgs">The cart agruments for updating.</param> private static void UpdateCartCallbackFunction(object cartArgs) { var cartInfo = cartArgs as Hashtable; if (cartInfo == null || !cartInfo.ContainsKey(CurrentCartKey)) { return; } var cart = cartInfo[CurrentCartKey] as Cart; if (cart != null) { cart.InstanceId = Guid.NewGuid(); if (HttpContext.Current == null && cartInfo.ContainsKey(CurrentContextKey)) { HttpContext.Current = cartInfo[CurrentContextKey] as HttpContext; } try { cart.AcceptChanges(); } catch (System.Exception ex) { ErrorManager.GenerateError(ex.Message); } } }
/// <summary> /// Renders the start in line. /// </summary> /// <param name="writer">The writer.</param> public void RenderStartInLine(HtmlTextWriter writer) { if (Product != null) { MetaClass mc = Product.GetEntryMetaClass(); if (mc == null) { ErrorManager.GenerateError("Could not load Product's MetaClass"); return; } bool added2Compare = CommonHelper.GetCompareProductsIds(mc.Name).Contains(Product.CatalogEntryId); HtmlInputCheckBox chkbox = new HtmlInputCheckBox(); chkbox.Attributes.Add("onclick", String.Format("javascript:CallServer{0}(this.checked);", Product.CatalogEntryId)); chkbox.ID = GetCompareButtonId(); if (added2Compare) { chkbox.Checked = true; } phCompareCheckbox.Controls.Add(chkbox); HtmlGenericControl span = new HtmlGenericControl("span"); span.InnerHtml = " "; phCompareCheckbox.Controls.Add(span); HtmlAnchor lnkCompare = new HtmlAnchor(); lnkCompare.HRef = String.Format("javascript:CSCompareProducts.OpenCompareView('{0}');", mc.Name); lnkCompare.InnerHtml = RM.GetString("COMPAREBUTTONMODULE_COMPARE_PRODUCTS"); phCompareCheckbox.Controls.Add(lnkCompare); } else { this.Visible = false; } }
/// <summary> /// Loads the template. /// </summary> private void LoadTemplate() { string templatePath = DictionaryManager.GetTemplatePath(CMSContext.Current.TemplateId); if (!templatePath.StartsWith("~")) { templatePath = "~" + templatePath; } // Check if template exists first if (!File.Exists(Server.MapPath(templatePath))) { // Generate template file not found exception ErrorManager.GenerateError(String.Format("Template file \"{0}\" was not found. Using default template instead.", templatePath)); // get default template CMSContext.Current.TemplateId = int.Parse(GlobalVariable.GetVariable("default_template", CMSContext.Current.SiteId).ToString()); templatePath = DictionaryManager.GetTemplatePath(CMSContext.Current.TemplateId); } if (!templatePath.StartsWith("~")) { templatePath = "~" + templatePath; } Control ctrl = this.Page.LoadControl(templatePath); CMSContext.Current.ControlPlaces = ((Mediachase.Cms.Util.IPublicTemplate)ctrl).ControlPlaces; Content.Controls.Add(ctrl); }
/// <summary> /// Handles the ItemUpdating event of the lvCartItem control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="ListViewUpdateEventArgs"/> instance containing the event data.</param> protected void lvCartItem_ItemUpdating(object sender, ListViewUpdateEventArgs e) { ListViewItem row = lvCartItems.Items[e.ItemIndex]; var quantityTextBox = row.FindControl("Quantity") as TextBox; decimal newQuantity; if (!decimal.TryParse(quantityTextBox.Text, out newQuantity)) { BindData(); return; } int lineItemId; if (!Int32.TryParse(lvCartItems.DataKeys[e.ItemIndex].Value.ToString(), out lineItemId)) { return; } if (!CartHelper.IsEmpty) { foreach (var item in CartHelper.LineItems) { var discounts = from Discount discount in item.Discounts where discount.DiscountName.EndsWith(":Gift") select discount; if (discounts.Any()) { ErrorManager.GenerateError(string.Format("[{0}]: {1}", item.DisplayName, "You can not change the quality of items of gift promotion")); return; } if (item.LineItemId == lineItemId) { if (item.Quantity != newQuantity) { var errorMessage = ""; var entry = CatalogContext.Current.GetCatalogEntry(item.CatalogEntryId, new CatalogEntryResponseGroup(CatalogEntryResponseGroup.ResponseGroup.CatalogEntryInfo | CatalogEntryResponseGroup.ResponseGroup.Inventory)); if (SampleStoreHelper.AllowAddToCart(CartHelper.Cart, entry, true, newQuantity, item.WarehouseCode, out errorMessage)) { item.Quantity = newQuantity; CartHelper.Cart.AcceptChanges(); } else { ErrorManager.GenerateError(string.Format("[{0}]: {1}", item.DisplayName, errorMessage)); return; } } break; } } } Context.RedirectFast(Request.RawUrl); }
/// <summary> /// Places the order. /// </summary> public bool FullfilPayment() { // find selected payment gateway: IPaymentOption selectedPayment = null; Mediachase.Commerce.Orders.Dto.PaymentMethodDto.PaymentMethodRow paymentMethodRow = null; var payments = PaymentManager.GetPaymentMethods("en"); for (int i = 0; i < PaymentContent.Controls.Count; i++) { Control control = PaymentContent.Controls[i]; var radioButton = control.Controls[0] as GlobalRadioButton; if (radioButton.Checked) { selectedPayment = control.Controls[2] as IPaymentOption; paymentMethodRow = payments.PaymentMethod[i]; break; } } if (selectedPayment == null) { ErrorManager.GenerateError("Fatal error, system administrator has been notified."); return(false); } try { var payment = selectedPayment.PreProcess(_cartHelper.OrderForm); if (payment != null) { payment.PaymentMethodId = paymentMethodRow.PaymentMethodId; payment.PaymentMethodName = paymentMethodRow.Name; payment.BillingAddressId = _cartHelper.OrderForm.BillingAddressId; payment.Amount = _cartHelper.OrderForm.Total; _cartHelper.Cart.OrderForms[0].Payments.Add(payment); // Save changes _cartHelper.Cart.AcceptChanges(); return(true); } } catch (Exception ex) { ErrorManager.GenerateError(ex.Message); return(false); } ErrorManager.GenerateError("Please choose a payment method."); return(false); }
/// <summary> /// Called when [finish button click]. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="T:System.Web.UI.WebControls.WizardNavigationEventArgs"/> instance containing the event data.</param> protected void OnFinishButtonClick(Object sender, WizardNavigationEventArgs e) { // Prepare cart for checkout try { CartHelper.Cart.RunWorkflow("CartCheckout"); } catch (PaymentException ex) { ErrorManager.GenerateError(ex.Message); return; } CartHelper.Cart.CustomerId = ProfileContext.Current.UserId; CartHelper.Cart.CustomerName = Profile.FullName; //CartHelper.Cart.CustomerId = ProfileContext.Current.Profile.n; PurchaseOrder po = null; // Save changes po = CartHelper.Cart.SaveAsPurchaseOrder(); // Send emails SendEmails(po, CartHelper.PrimaryAddress.Email); // Save latest order id Session["LatestOrderId"] = po.OrderGroupId; // Remove old cart CartHelper.Cart.Delete(); CartHelper.Cart.AcceptChanges(); // Call post process method to allow payment gateway to do some magic if (CheckoutPayment != null && CheckoutPayment.PaymentOptionControl != null) { (CheckoutPayment.PaymentOptionControl).PostProcess(CartHelper.OrderForm); } // Redirect customer to receipt page if (CMSContext.Current.CurrentUrl.Contains("?")) { Response.Redirect(CMSContext.Current.CurrentUrl + "&view=receipt"); } else { Response.Redirect(CMSContext.Current.CurrentUrl + "?view=receipt"); } }
/// <summary> /// Handles the Load event of the Page control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> private void Page_Load(object sender, System.EventArgs e) { if (Request.Form["paymentprovider"] != null && Request.Form["paymentprovider"].Equals(EpayConfiguration.EpaySystemName)) { ErrorManager.GenerateError(Utilities.Translate("CancelMessage")); } if (!IsPostBack) { var epayConfiguration = new EpayConfiguration(); if (string.IsNullOrEmpty(epayConfiguration.ProcessingUrl) || string.IsNullOrEmpty(epayConfiguration.MD5Key)) { ConfigMessage.Text = Utilities.Translate("EpaySettingsError"); } } }
/// <summary> /// Runs the workflow and generates the error message for all the warnings. /// </summary> /// <param name="name">The name.</param> public virtual void RunWorkflow(string name) { WorkflowResults results = this.Cart.RunWorkflow(name); object warnings = results.OutputParameters["Warnings"]; if (warnings != null) { StringDictionary warningsList = warnings as StringDictionary; if (warningsList != null) { foreach (string warning in warningsList.Values) { ErrorManager.GenerateError(warning); } } } }
/// <summary> /// When the save button is clicked, the information is stored, and the user receives a mesage. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnSaveChanges_Click(object sender, EventArgs e) { Mediachase.Commerce.Profile.ProfileContext.Current.User.Email = this.tbEmail.Text; try { System.Web.Security.Membership.UpdateUser(Mediachase.Commerce.Profile.ProfileContext.Current.User); } catch (Exception ex) { ErrorManager.GenerateError(ex.Message); } Mediachase.Commerce.Profile.ProfileContext.Current.Profile.FirstName = this.tbFirstName.Text; Mediachase.Commerce.Profile.ProfileContext.Current.Profile.LastName = this.tbLastName.Text; Mediachase.Commerce.Profile.ProfileContext.Current.Profile["Phone"] = this.tbPhone.Text; Mediachase.Commerce.Profile.ProfileContext.Current.Profile.Save(); this.lblMessage.Visible = true; this.lblMessage.Text = "Your personal information has been saved."; }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); //Get active payments, order by ordering (escending) var payments = PaymentManager.GetPaymentMethods("en").PaymentMethod.AsQueryable().Where(c => c.IsActive); var paymentList = new List <PaymentMethod>(); var defaultPayment = payments.OrderByDescending(c => c.Ordering).FirstOrDefault(c => c.IsDefault); if (defaultPayment == null) { defaultPayment = payments.OrderByDescending(c => c.Ordering).FirstOrDefault(); } if (defaultPayment == null) { ErrorManager.GenerateError("No payment method available."); return; } foreach (var paymentRow in payments) { var paymentMethod = new PaymentMethod(paymentRow); var marketId = _currentMarketService.GetCurrentMarket().MarketId; if (!paymentMethod.MarketId.Contains(marketId)) { continue; } paymentList.Add(paymentMethod); string controlId; if (defaultPayment.PaymentMethodId == paymentMethod.PaymentMethodId) { controlId = BindPaymentControls(paymentMethod, true); ActiveControlId = controlId; } else { controlId = BindPaymentControls(paymentMethod, false); } _paymentDictionary.Add(paymentMethod, controlId); } PaymentOptionList.DataSource = paymentList; PaymentOptionList.DataBind(); }
/// <summary> /// Handles the Load event of the Page control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> private void Page_Load(object sender, System.EventArgs e) { if (_payPalConfiguration == null) { _payPalConfiguration = new PayPalConfiguration(); } var pal = _payPalConfiguration.PAL; if (string.IsNullOrEmpty(pal)) { pal = ViewState["PAL"] as string; } if (string.IsNullOrEmpty(pal)) { //Obtain the PAL code using API var caller = PayPalAPIHelper.GetPayPalAPICallerServices(_payPalConfiguration); if (caller != null) { var palResponse = caller.GetPalDetails(new GetPalDetailsReq() { GetPalDetailsRequest = new GetPalDetailsRequestType() }); if (palResponse.Ack == AckCodeType.SUCCESSWITHWARNING || palResponse.Ack == AckCodeType.SUCCESS) { pal = palResponse.Pal; ViewState["PAL"] = pal; } } } SetupImageMark(_payPalConfiguration, pal); Message.Text = Utilities.Translate("PayPalText"); if (string.Equals(Request["accept"], "false") && !string.IsNullOrEmpty(Request.QueryString["hash"])) { ErrorManager.GenerateError(Utilities.Translate("CancelMessage")); return; } }
protected override void DoCommand(IOrderGroup order, CommandParameters cp) { Mediachase.Ibn.Web.UI.CHelper.RequireDataBind(); var purchaseOrder = order as PurchaseOrder; var workflowResults = OrderGroupWorkflowManager.RunWorkflow(purchaseOrder, "SaveChangesWorkflow", false, //false, new Dictionary <string, object> { { "PreventProcessPayment", !string.IsNullOrEmpty(order.Properties["QuoteStatus"] as string) && (order.Properties["QuoteStatus"].ToString() == RequestQuotation || order.Properties["QuoteStatus"].ToString() == RequestQuotationFinished) } }); if (workflowResults.Status != WorkflowStatus.Completed) { var msg = "Unknow error"; if (workflowResults.Exception != null) { msg = workflowResults.Exception.Message; } ErrorManager.GenerateError(msg); } else { WriteOrderChangeNotes(purchaseOrder); SavePurchaseOrderChanges(purchaseOrder); OrderHelper.ExitPurchaseOrderFromEditMode(purchaseOrder.OrderGroupId); } var warnings = OrderGroupWorkflowManager.GetWarningsFromWorkflowResult(workflowResults); if (warnings.Any()) { CommandHandlerHelper.ShowStatusMessage(string.Join(", ", warnings), CommandManager); } }
/// <summary> /// Validates the coupon code. /// </summary> private void ValidateCouponCode() { var couponCode = Session[Constants.LastCouponCode] as string; if (couponCode == null) { return; } if (IsPostBack || string.IsNullOrEmpty(couponCode)) { return; } // Return an error message dialog when Coupon code is invalid if (_discounts.Count == 0 || !_discounts.Exists(d => d.DiscountCode == couponCode)) { ErrorManager.GenerateError(string.Format("{0} is an invalid Coupon code.", couponCode)); Session.Remove(Constants.LastCouponCode); } }
/// <summary> /// Handles the Load event of the Page control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> protected void Page_Load(object sender, EventArgs e) { if (CartHelper.IsEmpty) { return; } if (!this.IsPostBack) { CreateDataShipment(); if (!IsValidSingleShippment()) { CheckoutButton.Enabled = false; CheckoutButton.CssClass += " disabled"; ErrorManager.GenerateError("Cart includes item(s) picked up from multiple stores, use \"Ship Items to Multiple Addresses\" instead."); return; } SetBillingAddresses(); SetShippingAddresses(); if (Cart.OrderForms.Count > 0 && Cart.OrderForms[0].Shipments.Count > 0 && ShippingManager.IsHandoffShippingMethod(Cart.OrderForms[0].Shipments[0].ShippingMethodName)) { ShippingAddressInfo.UseWarehouseAddress = true; shippingOptions.DataBind(); var litMessage = shippingOptions.Controls.Count == 0 ? null : shippingOptions.Controls[0].FindControl("litMessage") as Literal; if (litMessage != null) { litMessage.Text = ShippingManager.PickupShippingMethodName; } } else { SetShippingMethod(BindShippingMethods()); } } }
/// <summary> /// Handles the Click event of the CheckoutButton control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> protected void Order_Click(object sender, EventArgs e) { try { // Note: in order to support "2-phrase" checkout (for example, in PayPal, the payment process will be processed in PayPal's system), // we won't use execute this block in transaction. We will use transaction in PlaceOrder method instead. if (string.IsNullOrEmpty(Cart.OrderForms[0].BillingAddressId) || Cart.OrderAddresses.ToArray().FirstOrDefault(x => x.Name.Equals(Cart.OrderForms[0].BillingAddressId)) == null) { ErrorManager.GenerateError("Billing Address is not defined."); return; } if (Cart.OrderForms[0].Shipments.Count == 0) { ErrorManager.GenerateError("Shipping Address is not defined."); return; } Shipment ship = Cart.OrderForms[0].Shipments.ToArray().FirstOrDefault(); if (ship == null || string.IsNullOrEmpty(ship.ShippingAddressId) || Cart.OrderAddresses.ToArray().FirstOrDefault(x => x.Name.Equals(ship.ShippingAddressId)) == null) { ErrorManager.GenerateError("Shipping Address is not defined."); return; } ShippingMethodDto dto = ShippingManager.GetShippingMethod(ship.ShippingMethodId); if (dto != null && dto.ShippingMethod != null && dto.ShippingMethod.Count > 0) { ship.ShippingMethodId = dto.ShippingMethod[0].ShippingMethodId; ship.ShippingMethodName = dto.ShippingMethod[0].Name; } else { ErrorManager.GenerateError("Please choose a shipping method."); return; } string billingAddressId = Cart.OrderForms[0].BillingAddressId; foreach (Payment payment in CartHelper.OrderForm.Payments) { payment.Delete(); } if (!PaymentOptionsID.FullfilPayment()) { return; } PlaceOrder(); } catch (PaymentException ex) { ErrorManager.GenerateError(ex.Message); return; } Session.Remove(Constants.LastCouponCode); // Redirect customer to receipt page if (!Request.IsAuthenticated) { Context.RedirectFast("~/Templates/Sample/Pages/CheckoutConfirmationStep.aspx"); } else { Context.RedirectFast(GetUrl(Settings.YourOrdersPage)); } }
/// <summary> /// Sends the mail error. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="T:System.Web.UI.WebControls.SendMailErrorEventArgs"/> instance containing the event data.</param> protected void SendMailError(Object sender, SendMailErrorEventArgs e) { ErrorManager.GenerateError(e.Exception.Message); e.Handled = true; }