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/TDijk1/erp-apps.eu/wwwroot/CMSModules/Objects/Dialogs/CloneObjectDialog.aspx.cs
using System;
using System.Text;

using CMS.Helpers;
using CMS.Base;
using CMS.UIControls;
using CMS.EventLog;
using CMS.SiteProvider;
using CMS.DataEngine;

public partial class CMSModules_Objects_Dialogs_CloneObjectDialog : CMSModalPage
{
    string objectType = "";

    protected void Page_Load(object sender, EventArgs e)
    {
        // Get query string parameters
        objectType = QueryHelper.GetString("objecttype", String.Empty);
        int objectId = QueryHelper.GetInteger("objectid", 0);

        // Get the object
        BaseInfo info = BaseAbstractInfoProvider.GetInfoById(objectType, objectId);

        string objTypeName = "";
        if (info != null)
        {
            objTypeName = GetString("objecttype." + TranslationHelper.GetSafeClassName(info.TypeInfo.ObjectType));
        }

        if (objTypeName.StartsWithCSafe("objecttype."))
        {
            objTypeName = "";
            SetTitle(String.Format(GetString("clonning.dialog.title"), HTMLHelper.HTMLEncode(ResHelper.LocalizeString(info.Generalized.ObjectDisplayName))));
        }
        else
        {
            SetTitle(String.Format(GetString("clonning.dialog.title"), objTypeName));
        }

        btnClone.Text = GetString("General.Clone");
        btnClone.Click += btnClone_Click;

        if (info == null)
        {
            ShowInformation(GetString("clonning.dialog.objectdoesnotexist"));
            cloneObjectElem.Visible = false;
            return;
        }

        if (cloneObjectElem.HasNoSettings())
        {
            ShowInformation(string.Format(GetString("clonning.settings.emptyinfobox"), objTypeName, HTMLHelper.HTMLEncode(ResHelper.LocalizeString(info.Generalized.ObjectDisplayName))));
        }
        else
        {
            ShowInformation(string.Format(GetString("clonning.settings.infobox"), objTypeName, HTMLHelper.HTMLEncode(ResHelper.LocalizeString(info.Generalized.ObjectDisplayName))));
        }

        // Check permissions
        if (!info.CheckPermissions(PermissionsEnum.Read, CurrentSiteName, CurrentUser))
        {
            RedirectToAccessDenied(info.TypeInfo.ModuleName, "read");
        }

        cloneObjectElem.InfoToClone = info;

        // Register refresh script to refresh wopener
        StringBuilder script = new StringBuilder();
        script.Append(@"
function RefreshContent() {
  if (wopener != null) {
    if (wopener.RefreshWOpener)
    {
        window.refreshPageOnClose = true;
        wopener.RefreshWOpener(window);
    }
    else
    {
        wopener.window.location.replace(wopener.window.location);
    }
  }
}");
        // Register script
        ScriptHelper.RegisterWOpenerScript(Page);
        ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "WOpenerRefresh", ScriptHelper.GetScript(script.ToString()));
    }


    protected void btnClone_Click(object sender, EventArgs e)
    {
        try
        {
            CloneResult result = cloneObjectElem.CloneObject();
            if (result != null)
            {
                if (result.Errors.Count > 0)
                {
                    ShowError(ResHelper.LocalizeString(string.Join("\n", result.Errors.ToArray())));
                    SwitchToErrorMode();
                }
                else if (result.Warnings.Count > 0)
                {
                    ShowWarning(GetString("cloning.savedwithwarnings"), ResHelper.LocalizeString(string.Join("<br/>", result.Warnings.ToArray())));
                    SwitchToErrorMode();
                }
                else
                {
                    ScriptHelper.RegisterStartupScript(Page, typeof(string), "CloneRefresh", cloneObjectElem.CloseScript, true);
                }
            }
        }
        catch (Exception ex)
        {
            EventLogProvider.LogException(string.IsNullOrEmpty(objectType) ? "System" : objectType.ToLowerCSafe(), "CLONEOBJECT", ex);
            ShowError(ex.Message);

            if (!cloneObjectElem.UseTransaction)
            {
                SwitchToErrorMode();
            }
        }
    }


    private void SwitchToErrorMode()
    {
        plcForm.Visible = false;
        btnClone.Visible = false;
        SetCloseJavascript(cloneObjectElem.CloseScript + ";return false;");
    }
}