コード例 #1
0
ファイル: ChangeEMail.ascx.cs プロジェクト: hdgardner/ECF
        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");
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        /// <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);
                }
            }
        }
コード例 #4
0
    /// <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 = "&nbsp;";
            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;
        }
    }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
        /// <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);
        }
コード例 #7
0
        /// <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);
        }
コード例 #8
0
        /// <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");
                }
            }
        }
コード例 #10
0
        /// <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);
                    }
                }
            }
        }
コード例 #11
0
        /// <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.";
        }
コード例 #12
0
        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();
        }
コード例 #13
0
        /// <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;
            }
        }
コード例 #14
0
        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);
            }
        }
コード例 #15
0
        /// <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);
            }
        }
コード例 #16
0
        /// <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());
                }
            }
        }
コード例 #17
0
        /// <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));
            }
        }
コード例 #18
0
 /// <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;
 }