HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/MBoogaard/oosting-horseriding.com/CMS/CMSModules/Ecommerce/CMSPages/Donate.aspx.cs
using System;
using System.Text;
using System.Collections;

using CMS.Ecommerce;
using CMS.Helpers;
using CMS.UIControls;

[Title("com.donatedialog.title")]
public partial class CMSModules_Ecommerce_CMSPages_Donate : CMSLiveModalPage
{
    #region "Variables"

    private SKUInfo mDonationSKU;

    private string dialogIdentifier;
    private Hashtable dialogParameters;

    private Guid donationGuid = Guid.Empty;
    private double donationAmount;

    private string amountElementId;
    private string isPrivateElementId;
    private string unitsElementId;

    private string postBackEventReference;

    #endregion


    #region "Properties - protected"

    /// <summary>
    /// Donation SKU data.
    /// </summary>
    protected SKUInfo DonationSKU
    {
        get
        {
            return mDonationSKU ?? (mDonationSKU = SKUInfoProvider.GetSKUInfo(donationGuid));
        }
    }

    /// <summary>
    /// Indicates if donation has fixed donation amount.
    /// </summary>
    protected bool DonationHasFixedAmount
    {
        get
        {
            if (DonationSKU != null)
            {
                return ((DonationSKU.SKUMinPrice == DonationSKU.SKUPrice) && (DonationSKU.SKUMaxPrice == DonationSKU.SKUPrice));
            }

            return false;
        }
    }


    /// <summary>
    /// Error message.
    /// </summary>
    protected string ErrorMessage
    {
        get;
        set;
    }

    #endregion


    #region "Page methods"

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        // Get dialog identifier from URL
        dialogIdentifier = QueryHelper.GetString("params", null);

        // Get dialog parameters
        dialogParameters = (Hashtable)WindowHelper.GetItem(dialogIdentifier);

        if (dialogParameters != null)
        {
            donationGuid = ValidationHelper.GetGuid(dialogParameters["DonationGUID"], Guid.Empty);
            donationAmount = ValidationHelper.GetDouble(dialogParameters["DonationAmount"], 0.0);

            amountElementId = ValidationHelper.GetString(dialogParameters["DonationAmountElementID"], null);
            isPrivateElementId = ValidationHelper.GetString(dialogParameters["DonationIsPrivateElementID"], null);
            unitsElementId = ValidationHelper.GetString(dialogParameters["DonationUnitsElementID"], null);

            donationPropertiesElem.ShowDonationAmount = ValidationHelper.GetBoolean(dialogParameters["ShowDonationAmount"], false);
            donationPropertiesElem.ShowCurrencyCode = ValidationHelper.GetBoolean(dialogParameters["ShowCurrencyCode"], false);
            donationPropertiesElem.ShowDonationUnits = ValidationHelper.GetBoolean(dialogParameters["ShowDonationUnits"], false);
            donationPropertiesElem.ShowDonationIsPrivate = ValidationHelper.GetBoolean(dialogParameters["ShowDonationIsPrivate"], false);

            postBackEventReference = ValidationHelper.GetString(dialogParameters["PostBackEventReference"], null);
        }
    }


    protected void Page_Load(object sender, EventArgs e)
    {
        if (DonationSKU == null)
        {
            // Redirect if DonationSKU object is not set
            URLHelper.Redirect(UIHelper.GetAccessDeniedUrl(ResHelper.GetString("dialogs.badhashtext")));
        }
        else
        {
            // Set localized SKU name
            lblSKUName.Text = GetString(DonationSKU.SKUName);

            donationPropertiesElem.SKU = DonationSKU;

            if (!donationPropertiesElem.DonationAmountInitialized && (donationAmount > 0))
            {
                // Convert from main to cart currency               
                donationPropertiesElem.DonationAmount = ECommerceContext.CurrentShoppingCart.ApplyExchangeRate(donationAmount);
            }
        }

        // Initialize buttons
        btnDonate.Click += btnDonate_Click;
    }


    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);

        // Display description
        lblDescription.Visible = donationPropertiesElem.HasEditableFieldsVisible;

        // If donation amount field is not displayed
        if (!donationPropertiesElem.ShowDonationAmount)
        {
            // Get default amount in site currency
            double amount = donationAmount;
            if (amount <= 0)
            {
                // Get amount in site or global currency
                amount = DonationSKU.SKUPrice;
            }

            amount = ECommerceContext.CurrentShoppingCart.ApplyExchangeRate(amount, DonationSKU.IsGlobal);
            string formattedAmount = ECommerceContext.CurrentShoppingCart.GetFormattedPrice(amount, true);

            lblAmount.Text = String.Format(GetString("com.donatedialog.amount"), formattedAmount);
        }

        lblAmount.Visible = !String.IsNullOrEmpty(lblAmount.Text);

        // If donation has fixed donation amount and no donation properties fields are visible
        if (DonationHasFixedAmount || !donationPropertiesElem.HasEditableFieldsVisible)
        {
            plcMinMaxLabels.Visible = false;
        }
        else
        {
            // Initialize minimum and maximum donation amount labels
            if (DonationSKU.SKUMinPrice > 0.0)
            {
                double amount = ECommerceContext.CurrentShoppingCart.ApplyExchangeRate(DonationSKU.SKUMinPrice, DonationSKU.IsGlobal);
                string formattedAmount = ECommerceContext.CurrentShoppingCart.GetFormattedPrice(amount, true);
                lblMinimumAmount.Text = String.Format(GetString("com.donatedialog.minimumamount"), formattedAmount);
            }

            if (DonationSKU.SKUMaxPrice > 0.0)
            {
                double amount = ECommerceContext.CurrentShoppingCart.ApplyExchangeRate(DonationSKU.SKUMaxPrice, DonationSKU.IsGlobal);
                string formattedAmount = ECommerceContext.CurrentShoppingCart.GetFormattedPrice(amount, true);
                lblMaximumAmount.Text = String.Format(GetString("com.donatedialog.maximumamount"), formattedAmount);
            }
        }

        lblMinimumAmount.Visible = !String.IsNullOrEmpty(lblMinimumAmount.Text);
        lblMaximumAmount.Visible = !String.IsNullOrEmpty(lblMaximumAmount.Text);

        // Display error message
        lblError.Text = ErrorMessage;
        lblError.Visible = !String.IsNullOrEmpty(lblError.Text);
    }

    #endregion


    #region "Methods"

    /// <summary>
    /// Validates form and returns true if valid.
    /// </summary>
    public bool ValidateForm()
    {
        ErrorMessage = donationPropertiesElem.Validate();

        return String.IsNullOrEmpty(ErrorMessage);
    }


    private void btnDonate_Click(object sender, EventArgs e)
    {
        // If form is valid
        if (ValidateForm())
        {
            // Build script to add donation to shopping cart
            StringBuilder script = new StringBuilder();

            script.AppendLine(String.Format("wopener.setDonationParameter('{0}', '{1}');", amountElementId, donationPropertiesElem.DonationAmount));
            script.AppendLine(String.Format("wopener.setDonationParameter('{0}', '{1}');", unitsElementId, donationPropertiesElem.DonationUnits));
            script.AppendLine(String.Format("wopener.setDonationParameter('{0}', '{1}');", isPrivateElementId, donationPropertiesElem.DonationIsPrivate));
            script.AppendLine(String.Format("wopener.{0};", postBackEventReference));
            script.AppendLine("CloseDialog();");

            // Register as startup script
            ScriptHelper.RegisterStartupScript(Page, typeof(string), "AddToCart", ScriptHelper.GetScript(script.ToString()));
        }
    }

    #endregion
}