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/RMourik/bassol.nl/CMS/CMSModules/Ecommerce/Controls/MyDetails/MyCredit.ascx.cs
using System;

using CMS.Ecommerce;
using CMS.Helpers;
using CMS.Globalization;
using CMS.Membership;
using CMS.Base;
using CMS.SiteProvider;
using CMS.UIControls;

public partial class CMSModules_Ecommerce_Controls_MyDetails_MyCredit : CMSAdminControl
{
    #region "Variables"

    private CurrencyInfo mCurrency = null;
    private double rate = 1;

    #endregion


    #region "Properties"

    /// <summary>
    /// Site default currency object.
    /// </summary>
    private CurrencyInfo Currency
    {
        get
        {
            if (mCurrency == null)
            {
                mCurrency = ECommerceContext.CurrentCurrency;
            }

            return mCurrency ?? (mCurrency = CurrencyInfoProvider.GetMainCurrency(SiteContext.CurrentSiteID));
        }
    }


    /// <summary>
    /// Customer ID.
    /// </summary>
    public int CustomerId
    {
        get;
        set;
    }


    /// <summary>
    /// If true, control does not process the data.
    /// </summary>
    public override bool StopProcessing
    {
        get
        {
            return ValidationHelper.GetBoolean(ViewState["StopProcessing"], false);
        }
        set
        {
            ViewState["StopProcessing"] = value;
        }
    }

    #endregion


    #region "Page events"

    /// <summary>
    /// Page load.
    /// </summary>
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!StopProcessing)
        {
            if (AuthenticationHelper.IsAuthenticated())
            {
                // Get site id of credits main currency
                int creditSiteId = ECommerceHelper.GetSiteID(SiteContext.CurrentSiteID, ECommerceSettings.USE_GLOBAL_CREDIT);

                gridCreditEvents.HideControlForZeroRows = true;
                gridCreditEvents.IsLiveSite = IsLiveSite;
                gridCreditEvents.OnExternalDataBound += gridCreditEvents_OnExternalDataBound;
                gridCreditEvents.OrderBy = "EventDate DESC, EventName ASC";
                gridCreditEvents.WhereCondition = "EventCustomerID = " + CustomerId + " AND ISNULL(EventSiteID, 0) = " + creditSiteId;

                // Get total credit value
                double credit = CreditEventInfoProvider.GetTotalCredit(CustomerId, SiteContext.CurrentSiteID);

                if (Currency != null)
                {
                    // Convert credit to current currency when using one
                    rate = (double)CurrencyConverter.GetExchangeRate(creditSiteId == 0, Currency.CurrencyCode, SiteContext.CurrentSiteID);
                    credit = ExchangeRateInfoProvider.ApplyExchangeRate(credit, rate);
                }

                lblCreditValue.Text = CurrencyInfoProvider.GetFormattedPrice(credit, Currency);
            }
            else
            {
                // Hide if user is not authenticated
                Visible = false;
            }
        }
    }

    #endregion


    #region "Event handlers"

    protected object gridCreditEvents_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        // Show only date part from date-time value
        switch (sourceName.ToLowerCSafe())
        {
            case "eventdate":
                var date = ValidationHelper.GetDateTime(parameter, DateTimeHelper.ZERO_TIME);
                if (date != DateTimeHelper.ZERO_TIME)
                {
                    return TimeZoneHelper.ConvertToUserTimeZone(date, true, MembershipContext.AuthenticatedUser, SiteContext.CurrentSite);
                }

                return String.Empty;

            case "eventcreditchange":
                var credit = ExchangeRateInfoProvider.ApplyExchangeRate(ValidationHelper.GetDouble(parameter, 0), rate);
                return CurrencyInfoProvider.GetFormattedPrice(credit, Currency);
        }

        return parameter;
    }

    #endregion


    #region "Other methods"

    /// <summary>
    /// Overridden SetValue - because of MyAccount webpart.
    /// </summary>
    /// <param name="propertyName">Name of the property to set</param>
    /// <param name="value">Value to set</param>
    public override bool SetValue(string propertyName, object value)
    {
        base.SetValue(propertyName, value);

        switch (propertyName.ToLowerCSafe())
        {
            case "customerid":
                CustomerId = ValidationHelper.GetInteger(value, 0);
                break;
        }

        return true;
    }

    #endregion
}