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/Reporting/Controls/UserSubscriptions.ascx.cs
using System;

using CMS.Helpers;
using CMS.Membership;
using CMS.Reporting;
using CMS.Base;
using CMS.SiteProvider;
using CMS.UIControls;
using CMS.PortalEngine;
using CMS.WebAnalytics;
using CMS.ExtendedControls;

using Action = CMS.UIControls.UniGridConfig.Action;

public partial class CMSModules_Reporting_Controls_UserSubscriptions : CMSAdminControl
{
    #region "Public properties"


    /// <summary>
    /// User ID.
    /// </summary>
    public int UserID
    {
        get
        {
            return ValidationHelper.GetInteger(GetValue("userid"), MembershipContext.AuthenticatedUser.UserID);
        }
        set
        {
            SetValue("userid", value);
        }
    }


    /// <summary>
    /// Site ID.
    /// </summary>
    public int SiteID
    {
        get
        {
            return ValidationHelper.GetInteger(GetValue("siteid"), SiteContext.CurrentSiteID);
        }
        set
        {
            SetValue("siteid", value);
        }
    }


    /// <summary>
    /// Is live site.
    /// </summary>
    public override bool IsLiveSite
    {
        get
        {
            return ValidationHelper.GetBoolean(GetValue("islivesite"), base.IsLiveSite);
        }
        set
        {
            base.IsLiveSite = value;
            SetValue("islivesite", value);
        }
    }

    #endregion


    #region "Event handlers"

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

        // Hide info label for empty unigrid
        if (reportSubscriptions.RowsCount == 0)
        {
            lblMessage.Visible = false;
        }
    }


    protected void Page_Load(object sender, EventArgs e)
    {
        if (!StopProcessing)
        {
            SetupControls();
        }
        else
        {
            // Disable unigrid if StopProcessing
            reportSubscriptions.Visible = false;
            reportSubscriptions.StopProcessing = true;
        }

    }


    void reportSubscriptions_OnAction(string actionName, object actionArgument)
    {
        int id = ValidationHelper.GetInteger(actionArgument, 0);

        if (CheckSecurity(id))
        {
            switch (actionName.ToLowerCSafe())
            {
                case "reportunsubscribe":
                    ReportSubscriptionInfoProvider.DeleteReportSubscriptionInfo(id);
                    break;
            }
        }
    }


    #endregion


    #region "Private methods"

    /// <summary>
    /// Checks if given subscription is for current user.
    /// </summary>
    /// <param name="subscriptionID">Subscription ID</param>
    /// <returns>True if subscription belongs to user, false if not</returns>
    private bool CheckSecurity(int subscriptionID)
    {
        ReportSubscriptionInfo rsi = ReportSubscriptionInfoProvider.GetReportSubscriptionInfo(subscriptionID);
        return (rsi.ReportSubscriptionUserID == UserID);
    }


    /// <summary>
    /// Setup controls.
    /// </summary>
    private void SetupControls()
    {
        Action act = reportSubscriptions.GridActions.Actions[1] as Action;
        if (act != null)
        {
	        ScriptHelper.RegisterDialogScript(Page);
            String subscriptionUrl = IsLiveSite ? "~/CMSModules/Reporting/LiveDialogs/EditSubscription.aspx?subscriptionId={0}&mode=liveedit" : "~/CMSModules/Reporting/Dialogs/EditSubscription.aspx?subscriptionId={0}&mode=edit";
            act.OnClick = String.Format("modalDialog('{0}','Subscription',{1},{2});return false;", ResolveUrl(subscriptionUrl), AnalyticsHelper.SUBSCRIPTION_WINDOW_WIDTH + 70, AnalyticsHelper.SUBSCRIPTION_WINDOW_HEIGHT + 100);
        }

        ScriptHelper.RegisterClientScriptBlock(Page, typeof(String), "RefreshScript", ScriptHelper.GetScript("function refreshCurrentPage() {" + ControlsHelper.GetPostBackEventReference(btnPostback, String.Empty) + "}"));

        reportSubscriptions.WhereCondition = "(ReportSubscriptionUserID = " + UserID + ") AND (ReportSubscriptionSiteID = " + SiteID + ")";
        reportSubscriptions.IsLiveSite = IsLiveSite;
        reportSubscriptions.ZeroRowsText = GetString("reports.userhasnosubscriptions");
        reportSubscriptions.OnAction += new OnActionEventHandler(reportSubscriptions_OnAction);
        reportSubscriptions.Pager.DefaultPageSize = 10;
    }

    #endregion
}