Esempio n. 1
0
    /// <summary>
    /// Performs an inventory check for all items in the shopping cart and show message if required.
    /// </summary>
    /// <returns>True if all items are available in sufficient quantities, otherwise false</returns>
    private bool CheckShoppingCart()
    {
        // Remove error message before reevaluation
        lblError.Text = string.Empty;

        if (ShoppingCart.IsEmpty)
        {
            lblError.Visible = true;
            lblError.Text    = ResHelper.GetString("com.checkout.cartisempty");
            return(false);
        }

        var validationErrors = ShoppingCartInfoProvider.ValidateShoppingCart(ShoppingCart);

        // Try to show message through Message Panel web part
        if (validationErrors.Any() || orderChanged)
        {
            CMSEventArgs <string> args = new CMSEventArgs <string>();
            args.Parameter = validationErrors
                             .Select(e => HTMLHelper.HTMLEncode(e.GetMessage()))
                             .Join("<br />");

            ComponentEvents.RequestEvents.RaiseEvent(this, args, MESSAGE_RAISED);

            // If Message Panel web part is not present (Parameter is cleared by web part after successful handling), show error message in error label
            if (!string.IsNullOrEmpty(args.Parameter) && validationErrors.Any())
            {
                lblError.Visible = true;
                lblError.Text    = validationErrors
                                   .Select(e => HTMLHelper.HTMLEncode(e.GetMessage()))
                                   .Join("<br />");
            }
        }
        return(!validationErrors.Any());
    }
    /// <summary>
    /// Performs an inventory check for all items in the shopping cart and show message if required.
    /// </summary>
    /// <returns>True if all items are available in sufficient quantities, otherwise false</returns>
    private bool CheckShoppingCart()
    {
        // Remove error message before reevaluation
        lblError.Text = string.Empty;

        if (ShoppingCart.IsEmpty)
        {
            lblError.Visible = true;
            lblError.Text    = ResHelper.GetString("com.checkout.cartisempty");
            return(false);
        }

        ShoppingCartCheckResult checkResult = ShoppingCartInfoProvider.CheckShoppingCart(ShoppingCart);

        // Try to show message through Message Panel web part
        if (checkResult.CheckFailed || orderChanged)
        {
            CMSEventArgs <string> args = new CMSEventArgs <string>();
            args.Parameter = checkResult.GetHTMLFormattedMessage();
            ComponentEvents.RequestEvents.RaiseEvent(this, args, MESSAGE_RAISED);

            // If Message Panel web part is not present (Parameter is cleared by web part after successful handling), show error message in error label
            if (!string.IsNullOrEmpty(args.Parameter) && checkResult.CheckFailed)
            {
                lblError.Visible = true;
                lblError.Text    = checkResult.GetHTMLFormattedMessage();
            }
        }
        return(!checkResult.CheckFailed);
    }
Esempio n. 3
0
    /// <summary>
    /// OnGetSelectionDialogScript event handler
    /// </summary>
    protected void OnGetSelectionDialogScript_Execute(object sender, CMSEventArgs <GetSelectionDialogScriptEventArgs> e)
    {
        if (StopProcessing)
        {
            return;
        }

        // Replace update script
        e.Parameter.Script = $"if(!CheckChanges()) {{ return false; }}; {e.Parameter.Script}";
    }
    protected override void StepFinished(object sender, StepEventArgs e)
    {
        base.StepFinished(sender, e);
        // We are on last step and we don't have order yet
        if (e.IsLastStep && (e.GetValue(ORDER_CREATED_KEY) == null))
        {
            if (FinalizeCheckout())
            {
                int    orderId   = ShoppingCart.OrderId;
                string orderHash = ShoppingCart.GetHashCode().ToString();
                WindowHelper.Add(orderHash, orderId);
                // Create URL for payment page with order id hidden in hash
                e.FinalStepUrl = URLHelper.AddParameterToUrl(e.FinalStepUrl, "o", orderHash);
            }
            else
            {
                // Log events created in transaction
                foreach (Tuple <string, string> error in loggedErrors)
                {
                    EventLogProvider.LogEvent(EventType.ERROR, EVENT_SOURCE, error.Item2, error.Item1);
                }

                foreach (Exception ex in loggedExceptions)
                {
                    EventLogProvider.LogException(EVENT_SOURCE, EVENT_CODE_EXCEPTION, ex);
                }

                e.CancelEvent = true;
                // Get error text
                string errorMessage = HTMLHelper.HTMLEncode(ResHelper.GetString("ecommerce.orderpreview.errorordersave"));

                if (!string.IsNullOrEmpty(registrationBanned))
                {
                    errorMessage += HTMLHelper.HTMLEncode(Environment.NewLine + registrationBanned);
                }

                // Try to show message through Message Panel web part
                CMSEventArgs <string> args = new CMSEventArgs <string>();
                args.Parameter = errorMessage;
                ComponentEvents.RequestEvents.RaiseEvent(this, args, MESSAGE_RAISED);

                // If Message Panel web part is not present (Parameter is cleared by web part after successful handling), show message through alert script
                if (!string.IsNullOrEmpty(args.Parameter))
                {
                    ScriptHelper.Alert(Page, errorMessage);
                }
            }

            CleanUpShoppingCart();
            DocumentWizardManager.ResetWizard();

            e.SetValue(ORDER_CREATED_KEY, true);
        }
    }
    /// <summary>
    /// Handle incoming message.
    /// </summary>
    protected void HandleMessage(object sender, EventArgs e)
    {
        CMSEventArgs <string> args = e as CMSEventArgs <string>;

        if (args != null)
        {
            string message = args.Parameter;
            lblMessage.Text    = message;
            lblMessage.Visible = true;
            // Clear parameter to tag this message as handled
            args.Parameter = string.Empty;
        }
    }
    private void ShowError(string errorMessage)
    {
        // Try to show message through Message Panel web part
        CMSEventArgs <string> args = new CMSEventArgs <string>();

        args.Parameter = errorMessage;
        ComponentEvents.RequestEvents.RaiseEvent(this, args, MESSAGE_RAISED);

        // If Message Panel web part is not present (Parameter is cleared by web part after successful handling), show message through alert script
        if (!string.IsNullOrEmpty(args.Parameter))
        {
            errorMessage = errorMessage.Replace(HTML_SEPARATOR, Environment.NewLine);
            ScriptHelper.Alert(Page, errorMessage);
        }
    }
    /// <summary>
    /// Handle incoming message.
    /// </summary>
    protected void HandleMessage(object sender, EventArgs e)
    {
        CMSEventArgs <string> args = e as CMSEventArgs <string>;

        if (args != null)
        {
            string message = args.Parameter;
            if (!String.IsNullOrEmpty(message))
            {
                lblMessage.Text        = message;
                messageWrapper.Visible = true;
            }
            else
            {
                messageWrapper.Visible = false;
            }
            // Clear parameter to tag this message as handled
            args.Parameter = string.Empty;
        }
    }
    /// <summary>
    /// Performs an inventory check for all items in the shopping cart and show message if required.
    /// </summary>
    /// <returns>True if all items are available in sufficient quantities, otherwise false</returns>
    private bool CheckShoppingCart()
    {
        // Remove error message before reevaluation
        lblError.Text = string.Empty;

        if (ShoppingCart.IsEmpty)
        {
            lblError.Visible = true;
            lblError.Text = ResHelper.GetString("com.checkout.cartisempty");
            return false;
        }

        ShoppingCartCheckResult checkResult = ShoppingCartInfoProvider.CheckShoppingCart(ShoppingCart);

        // Try to show message through Message Panel web part
        if (checkResult.CheckFailed || orderChanged)
        {
            CMSEventArgs<string> args = new CMSEventArgs<string>();
            args.Parameter = checkResult.GetHTMLFormattedMessage();
            ComponentEvents.RequestEvents.RaiseEvent(this, args, MESSAGE_RAISED);

            // If Message Panel web part is not present (Parameter is cleared by web part after successful handling), show error message in error label
            if (!string.IsNullOrEmpty(args.Parameter) && checkResult.CheckFailed)
            {
                lblError.Visible = true;
                lblError.Text = checkResult.GetHTMLFormattedMessage();
            }
        }
        return !checkResult.CheckFailed;
    }
    /// <summary>
    /// OnGetSelectionDialogScript event handler
    /// </summary>
    protected void OnGetSelectionDialogScript_Execute(object sender, CMSEventArgs<GetSelectionDialogScriptEventArgs> e)
    {
        if (StopProcessing)
        {
            return;
        }

        // Replace update script
        e.Parameter.Script = String.Format("if(!CheckChanges()) {{ return false; }}; {0}", e.Parameter.Script);
    }
    private void ShowError(string errorMessage)
    {
        // Try to show message through Message Panel web part
        CMSEventArgs<string> args = new CMSEventArgs<string>();
        args.Parameter = errorMessage;
        ComponentEvents.RequestEvents.RaiseEvent(this, args, MESSAGE_RAISED);

        // If Message Panel web part is not present (Parameter is cleared by web part after successful handling), show message through alert script
        if (!string.IsNullOrEmpty(args.Parameter))
        {
            errorMessage = errorMessage.Replace(HTML_SEPARATOR, Environment.NewLine);
            ScriptHelper.Alert(Page, errorMessage);
        }
    }
        private void ContactMerge_Execute(object sender, CMSEventArgs <ContactMergeModel> e)
        {
            var service = Service.Resolve <IContactMergeProcessor>();

            service.Process(e.Parameter.SourceContact, e.Parameter.TargetContact);
        }
    protected override void StepFinished(object sender, StepEventArgs e)
    {
        base.StepFinished(sender, e);
        // We are on last step and we don't have order yet
        if (e.IsLastStep && (e.GetValue(ORDER_CREATED_KEY) == null))
        {
            if (FinalizeCheckout())
            {
                int orderId = ShoppingCart.OrderId;
                string orderHash = ShoppingCart.GetHashCode().ToString();
                WindowHelper.Add(orderHash, orderId);
                // Create URL for payment page with order id hidden in hash
                e.FinalStepUrl = URLHelper.AddParameterToUrl(e.FinalStepUrl, "o", orderHash);
            }
            else
            {
                // Log events created in transaction
                foreach (Tuple<string, string> error in loggedErrors)
                {
                    EventLogProvider.LogEvent(EventType.ERROR, EVENT_SOURCE, error.Item2, error.Item1);
                }

                foreach (Exception ex in loggedExceptions)
                {
                    EventLogProvider.LogException(EVENT_SOURCE, EVENT_CODE_EXCEPTION, ex);
                }

                e.CancelEvent = true;
                // Get error text
                string errorMessage = HTMLHelper.HTMLEncode(ResHelper.GetString("ecommerce.orderpreview.errorordersave"));

                if (!string.IsNullOrEmpty(registrationBanned))
                {
                    errorMessage += HTMLHelper.HTMLEncode(Environment.NewLine + registrationBanned);
                }

                // Try to show message through Message Panel web part
                CMSEventArgs<string> args = new CMSEventArgs<string>();
                args.Parameter = errorMessage;
                ComponentEvents.RequestEvents.RaiseEvent(this, args, MESSAGE_RAISED);

                // If Message Panel web part is not present (Parameter is cleared by web part after successful handling), show message through alert script
                if (!string.IsNullOrEmpty(args.Parameter))
                {
                    ScriptHelper.Alert(Page, errorMessage);
                }
            }

            CleanUpShoppingCart();
            DocumentWizardManager.ResetWizard();

            e.SetValue(ORDER_CREATED_KEY, true);
        }
    }