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/wwwroot/CMSModules/CustomTables/Controls/CustomTableForm.ascx.cs
using System;

using CMS.DataEngine;
using CMS.Helpers;
using CMS.Membership;
using CMS.SiteProvider;
using CMS.UIControls;

public partial class CMSModules_CustomTables_Controls_CustomTableForm : CMSUserControl
{
    #region "Private variables"

    private string editItemPage = "~/CMSModules/CustomTables/Tools/CustomTable_Data_EditItem.aspx";
    private DataClassInfo dci;
    private string mEditItemPageAdditionalParams;

    #endregion


    #region "Public properties"

    /// <summary>
    /// Custom table class id.
    /// </summary>
    public int CustomTableId
    {
        get
        {
            return customTableForm.CustomTableId;
        }
        set
        {
            customTableForm.CustomTableId = value;
        }
    }


    /// <summary>
    /// Custom table item id.
    /// </summary>
    public int ItemId
    {
        get
        {
            return customTableForm.ItemID;
        }
        set
        {
            customTableForm.ItemID = value;
        }
    }


    /// <summary>
    /// Gets or sets additional parameters for edit page.
    /// </summary>
    public string EditItemPageAdditionalParams
    {
        get
        {
            return mEditItemPageAdditionalParams;
        }
        set
        {
            mEditItemPageAdditionalParams = value;
        }
    }

    #endregion


    /// <summary>
    /// Page load.
    /// </summary>
    protected void Page_Load(object sender, EventArgs e)
    {
        if (CustomTableId > 0)
        {
            // Get form info
            dci = DataClassInfoProvider.GetDataClassInfo(CustomTableId);

            if (dci != null)
            {
                if (dci.ClassEditingPageURL != String.Empty)
                {
                    editItemPage = dci.ClassEditingPageURL;
                }

                customTableForm.OnBeforeDataRetrieval += customTableForm_OnBeforeDataRetrieval;
                customTableForm.OnAfterSave += customTableForm_OnAfterSave;
            }
        }

        // Show message about successful save
        if (!RequestHelper.IsPostBack() && QueryHelper.GetBoolean("saved", false))
        {
            customTableForm.ShowChangesSaved();
        }
    }


    private void customTableForm_OnBeforeDataRetrieval(object sender, EventArgs e)
    {
        // If editing item
        if (ItemId > 0)
        {
            // Check 'Modify' permission
            if (!dci.CheckPermissions(PermissionsEnum.Modify, SiteContext.CurrentSiteName, MembershipContext.AuthenticatedUser))
            {
                // Show error message
                customTableForm.MessagesPlaceHolder.ClearLabels();
                customTableForm.ShowError(String.Format(GetString("customtable.permissiondenied.modify"), dci.ClassName));
                customTableForm.StopProcessing = true;
            }
        }
        else
        {
            // Check 'Create' permission
            if (!dci.CheckPermissions(PermissionsEnum.Create, SiteContext.CurrentSiteName, MembershipContext.AuthenticatedUser))
            {
                // Show error message
                customTableForm.MessagesPlaceHolder.ClearLabels();
                customTableForm.ShowError(String.Format(GetString("customtable.permissiondenied.create"), dci.ClassName));
                customTableForm.StopProcessing = true;
            }
        }
    }


    private void customTableForm_OnAfterSave(object sender, EventArgs e)
    {
        string param = "&saved=1";

        // Include additional parameters if any
        param += (String.IsNullOrEmpty(EditItemPageAdditionalParams) ? String.Empty : "&" + EditItemPageAdditionalParams);

        // Reflect new in query string
        param += (QueryHelper.GetString("new", String.Empty) != String.Empty) ? "&new=1" : String.Empty;

        // Redirect to edit page with saved parameter and new itemId (new item)
        customTableForm.RedirectUrlAfterSave = URLHelper.GetAbsoluteUrl(editItemPage) + "?objectid=" + CustomTableId + "&itemid=" + customTableForm.ItemID + param;
    }
}