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/ImportExport/Controls/ImportConfiguration.ascx.cs
using System;
using System.Collections.Generic;

using CMS.CMSImportExport;
using CMS.ExtendedControls;
using CMS.Helpers;
using CMS.IO;
using CMS.Membership;
using CMS.UIControls;

public partial class CMSModules_ImportExport_Controls_ImportConfiguration : CMSUserControl
{
    private SiteImportSettings mSettings = null;


    #region "Properties"

    /// <summary>
    /// Import settings.
    /// </summary>
    public SiteImportSettings Settings
    {
        get
        {
            return mSettings;
        }
        set
        {
            mSettings = value;
        }
    }

    #endregion


    protected void Page_Load(object sender, EventArgs e)
    {
        if (!StopProcessing)
        {
            // Initialize button for adding packages
            newImportPackage.DisplayInline = true;
            newImportPackage.AllowedExtensions = "zip";
            newImportPackage.ParentElemID = ClientID;
            newImportPackage.ForceLoad = true;
            newImportPackage.ShowProgress = false;
            newImportPackage.CheckPermissions = true;
            newImportPackage.SourceType = MediaSourceEnum.PhysicalFile;
            newImportPackage.TargetFolderPath = ImportExportHelper.GetSiteUtilsFolder() + "Import";
            newImportPackage.Text = GetString("importconfiguration.uploadpackage");
            newImportPackage.InnerElementClass = "NewAttachment";
            newImportPackage.InnerLoadingElementClass = "NewAttachmentLoading";
            newImportPackage.DisplayInline = true;
            newImportPackage.AfterSaveJavascript = "Refresh" + ClientID;

            ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "Refresh" + ClientID, ScriptHelper.GetScript("function Refresh" + ClientID + "(){" + Page.ClientScript.GetPostBackEventReference(btnRefresh, null).Replace("'", "\"") + "}"));

            if (!RequestHelper.IsCallback() && !RequestHelper.IsPostBack())
            {
                radAll.Text = GetString("ImportConfiguration.All");
                radNew.Text = GetString("ImportConfiguration.Date");

                // Load imports list
                RefreshPackageList(null);
            }
        }
    }


    /// <summary>
    /// Refresh button click handler.
    /// </summary>
    protected void btnRefresh_Click(object sender, EventArgs e)
    {
        RefreshPackageList(sender);
    }


    /// <summary>
    /// Refresh package list.
    /// </summary>
    /// <param name="sender">Sender object</param>
    private void RefreshPackageList(object sender)
    {
        // Reload the list
        lstImports.Items.Clear();
        LoadImports();

        // Update panel
        pnlUpdate.Update();

        // Select first item
        if (lstImports.Items.Count > 0)
        {
            lstImports.SelectedIndex = 0;
            btnDelete.OnClientClick = "if (!confirm(" + ScriptHelper.GetLocalizedString("importconfiguration.deleteconf") + ")) { return false;}";
        }
        else
        {
            btnDelete.OnClientClick = "";
        }
    }


    /// <summary>
    /// Refresh button click handler.
    /// </summary>
    protected void btnDelete_Click(object sender, EventArgs e)
    {
        if (!String.IsNullOrEmpty(lstImports.SelectedValue))
        {
            try
            {
                File.Delete(ImportExportHelper.GetSiteUtilsFolder() + "Import\\" + lstImports.SelectedValue);
            }
            catch (Exception ex)
            {
                ScriptHelper.RegisterStartupScript(Page, typeof(string), "ErrorMessage", ScriptHelper.GetAlertScript(ex.Message));
            }
            finally
            {
                RefreshPackageList(sender);
            }
        }
    }


    // Load imports lsit
    private void LoadImports()
    {
        if (lstImports.Items.Count == 0)
        {
            List<string> files = null;

            // Get import packages
            try
            {
                files = ImportProvider.GetImportFilesList();
            }
            catch
            {
                // Show error and log exception
                string path = ImportExportHelper.GetSiteUtilsFolderRelativePath();
                if (path == null)
                {
                    path = ImportExportHelper.GetSiteUtilsFolder();
                }

                lblError.Text = GetString("importconfiguration.securityerror").Replace("{0}", path + "Import");
            }

            if ((files != null) && (files.Count != 0))
            {
                lstImports.Enabled = true;
                lstImports.DataSource = files;
                lstImports.DataBind();
            }
            else
            {
                lstImports.Enabled = false;
            }
        }

        if (!RequestHelper.IsPostBack())
        {
            try
            {
                lstImports.SelectedIndex = 0;
            }
            catch
            {
            }
        }
    }


    /// <summary>
    /// Initialize control.
    /// </summary>
    public void InitControl()
    {
        // Could be used in the future:)
    }


    /// <summary>
    /// Apply control settings.
    /// </summary>
    public bool ApplySettings()
    {
        string result = null;

        // File is not selected, inform the user
        if (lstImports.SelectedItem == null)
        {
            result = GetString("ImportConfiguration.FileError");
        }

        if (string.IsNullOrEmpty(result))
        {
            try
            {
                // Set current user information
                Settings.CurrentUser = MembershipContext.AuthenticatedUser;

                // Set source filename
                Settings.SourceFilePath = ImportExportHelper.GetSiteUtilsFolder() + "Import\\" + lstImports.SelectedValue;

                // Init default values
                Settings.ImportType = radAll.Checked ? ImportTypeEnum.AllNonConflicting : ImportTypeEnum.New;
            }
            catch (Exception ex)
            {
                lblError.Text = ex.Message;
                return false;
            }
        }
        else
        {
            lblError.Text = result;
            return false;
        }

        return true;
    }


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

        lblError.Visible = (!string.IsNullOrEmpty(lblError.Text));
    }
}