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/CMSAPIExamples/Code/Tools/MediaLibrary/Default.aspx.cs
using System;
using System.Data;

using CMS.Helpers;
using CMS.IO;
using CMS.MediaLibrary;
using CMS.SiteProvider;
using CMS.Membership;
using CMS.UIControls;
using CMS.Modules;

public partial class CMSAPIExamples_Code_Tools_MediaLibrary_Default : CMSAPIExamplePage
{
    #region "Initialization"

    protected void Page_Load(object sender, EventArgs e)
    {
        // Media library
        apiCreateMediaLibrary.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(CreateMediaLibrary);
        apiGetAndUpdateMediaLibrary.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(GetAndUpdateMediaLibrary);
        apiGetAndBulkUpdateMediaLibraries.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(GetAndBulkUpdateMediaLibraries);
        apiDeleteMediaLibrary.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(DeleteMediaLibrary);

        // Media folder
        apiCreateMediaFolder.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(CreateMediaFolder);
        apiDeleteMediaFolder.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(DeleteMediaFolder);

        // Media file
        apiCreateMediaFile.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(CreateMediaFile);
        apiGetAndUpdateMediaFile.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(GetAndUpdateMediaFile);
        apiGetAndBulkUpdateMediaFiles.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(GetAndBulkUpdateMediaFiles);
        apiDeleteMediaFile.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(DeleteMediaFile);

        // Role permission in media library
        apiAddRolePermissionToLibrary.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(AddRolePermissionToLibrary);
        apiRemoveRolePermissionFromLibrary.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(RemoveRolePermissionFromLibrary);
    }

    #endregion


    #region "Mass actions"

    /// <summary>
    /// Runs all creating and managing examples.
    /// </summary>
    public override void RunAll()
    {
        base.RunAll();

        // Media library
        apiCreateMediaLibrary.Run();
        apiGetAndUpdateMediaLibrary.Run();
        apiGetAndBulkUpdateMediaLibraries.Run();

        // Media folder
        apiCreateMediaFolder.Run();

        // Media file
        apiCreateMediaFile.Run();
        apiGetAndUpdateMediaFile.Run();
        apiGetAndBulkUpdateMediaFiles.Run();

        // Role permission in media library
        apiAddRolePermissionToLibrary.Run();
    }


    /// <summary>
    /// Runs all cleanup examples.
    /// </summary>
    public override void CleanUpAll()
    {
        base.CleanUpAll();

        // Role permission in media library
        apiRemoveRolePermissionFromLibrary.Run();

        // Media file
        apiDeleteMediaFile.Run();

        // Media folder
        apiDeleteMediaFolder.Run();

        // Media library
        apiDeleteMediaLibrary.Run();
    }

    #endregion


    #region "API examples - Media library"

    /// <summary>
    /// Creates media library. Called when the "Create library" button is pressed.
    /// </summary>
    private bool CreateMediaLibrary()
    {
        // Create new media library object
        MediaLibraryInfo newLibrary = new MediaLibraryInfo();

        // Set the properties
        newLibrary.LibraryDisplayName = "My new library";
        newLibrary.LibraryName = "MyNewLibrary";
        newLibrary.LibraryDescription = "My new library description";
        newLibrary.LibraryFolder = "MyNewLibrary";
        newLibrary.LibrarySiteID = SiteContext.CurrentSiteID;
        newLibrary.LibraryGUID = Guid.NewGuid();
        newLibrary.LibraryLastModified = DateTime.Now;

        // Create the media library
        MediaLibraryInfoProvider.SetMediaLibraryInfo(newLibrary);

        return true;
    }


    /// <summary>
    /// Gets and updates media library. Called when the "Get and update library" button is pressed.
    /// Expects the CreateMediaLibrary method to be run first.
    /// </summary>
    private bool GetAndUpdateMediaLibrary()
    {
        // Get the media library
        MediaLibraryInfo updateLibrary = MediaLibraryInfoProvider.GetMediaLibraryInfo("MyNewLibrary", SiteContext.CurrentSiteName);
        if (updateLibrary != null)
        {
            // Update the property
            updateLibrary.LibraryDisplayName = updateLibrary.LibraryDisplayName.ToLower();

            // Update the media library
            MediaLibraryInfoProvider.SetMediaLibraryInfo(updateLibrary);

            return true;
        }

        return false;
    }


    /// <summary>
    /// Gets and bulk updates media libraries. Called when the "Get and bulk update libraries" button is pressed.
    /// Expects the CreateMediaLibrary method to be run first.
    /// </summary>
    private bool GetAndBulkUpdateMediaLibraries()
    {
        // Prepare the parameters
        string where = "LibraryName LIKE 'MyNew%'";

        // Get the data
        DataSet libraries = MediaLibraryInfoProvider.GetMediaLibraries(where, null);
        if (!DataHelper.DataSourceIsEmpty(libraries))
        {
            // Loop through the individual items
            foreach (DataRow libraryDr in libraries.Tables[0].Rows)
            {
                // Create object from DataRow
                MediaLibraryInfo modifyLibrary = new MediaLibraryInfo(libraryDr);

                // Update the property
                modifyLibrary.LibraryDisplayName = modifyLibrary.LibraryDisplayName.ToUpper();

                // Update the media library
                MediaLibraryInfoProvider.SetMediaLibraryInfo(modifyLibrary);
            }

            return true;
        }

        return false;
    }


    /// <summary>
    /// Deletes media library. Called when the "Delete library" button is pressed.
    /// Expects the CreateMediaLibrary method to be run first.
    /// </summary>
    private bool DeleteMediaLibrary()
    {
        // Get the media library
        MediaLibraryInfo deleteLibrary = MediaLibraryInfoProvider.GetMediaLibraryInfo("MyNewLibrary", SiteContext.CurrentSiteName);

        // Delete the media library
        MediaLibraryInfoProvider.DeleteMediaLibraryInfo(deleteLibrary);

        return (deleteLibrary != null);
    }

    #endregion


    #region "API examples - Media folder"

    /// <summary>
    /// Creates media folder. Called when the "Create folder" button is pressed.
    /// Expects the CreateMediaLibrary method to be run first.
    /// </summary>
    private bool CreateMediaFolder()
    {
        // Get media library
        MediaLibraryInfo library = MediaLibraryInfoProvider.GetMediaLibraryInfo("MyNewLibrary", SiteContext.CurrentSiteName);
        if (library != null)
        {
            // Create new media folder object
            MediaLibraryInfoProvider.CreateMediaLibraryFolder(CurrentSiteName, library.LibraryID, "MyNewFolder", false);

            return true;
        }

        return false;
    }


    /// <summary>
    /// Deletes media folder. Called when the "Delete folder" button is pressed.
    /// Expects the CreateMediaFolder method to be run first.
    /// </summary>
    private bool DeleteMediaFolder()
    {
        // Get media library
        MediaLibraryInfo library = MediaLibraryInfoProvider.GetMediaLibraryInfo("MyNewLibrary", SiteContext.CurrentSiteName);
        if (library != null)
        {
            // Delete new media folder object
            MediaLibraryInfoProvider.DeleteMediaLibraryFolder(CurrentSiteName, library.LibraryID, "MyNewFolder", false);

            return true;
        }

        return false;
    }

    #endregion


    #region "API examples - Media file"

    /// <summary>
    /// Creates media file. Called when the "Create file" button is pressed.
    /// Expects the CreateMediaLibrary method to be run first.
    /// </summary>
    private bool CreateMediaFile()
    {
        // Prepare the parameters
        string filePath = "~/CMSAPIExamples/Code/Tools/MediaLibrary/Files/Powered_by_kentico2.gif";

        // Get media library
        MediaLibraryInfo library = MediaLibraryInfoProvider.GetMediaLibraryInfo("MyNewLibrary", SiteContext.CurrentSiteName);
        if (library != null)
        {
            // Create new media file object
            MediaFileInfo mediaFile = new MediaFileInfo(Server.MapPath(filePath), library.LibraryID);

            // Create file info
            FileInfo file = FileInfo.New(Server.MapPath(filePath));
            if (file != null)
            {
                // Set the properties
                mediaFile.FileName = "MyNewFile";
                mediaFile.FileTitle = "My new file title";
                mediaFile.FileDescription = "My new file description.";
                mediaFile.FilePath = "MyNewFolder/MyNewFile.gif";
                mediaFile.FileExtension = file.Extension;
                mediaFile.FileMimeType = "image/gif";
                mediaFile.FileSiteID = SiteContext.CurrentSiteID;
                mediaFile.FileLibraryID = library.LibraryID;
                mediaFile.FileSize = file.Length;

                // Create the media file
                MediaFileInfoProvider.SetMediaFileInfo(mediaFile);

                return true;
            }
        }

        return false;
    }


    /// <summary>
    /// Gets and updates media file. Called when the "Get and update file" button is pressed.
    /// Expects the CreateMediaFile method to be run first.
    /// </summary>
    private bool GetAndUpdateMediaFile()
    {
        // Get the media file
        MediaFileInfo updateFile = MediaFileInfoProvider.GetMediaFileInfo(SiteContext.CurrentSiteName, "MyNewFolder/MyNewFile.gif", null);
        if (updateFile != null)
        {
            // Update the property
            updateFile.FileName = updateFile.FileName.ToLower();

            // Update the media file
            MediaFileInfoProvider.SetMediaFileInfo(updateFile);

            return true;
        }

        return false;
    }


    /// <summary>
    /// Gets and bulk updates media files. Called when the "Get and bulk update files" button is pressed.
    /// Expects the CreateMediaFile method to be run first.
    /// </summary>
    private bool GetAndBulkUpdateMediaFiles()
    {
        // Prepare the parameters
        string where = "FileName LIKE 'MyNew%'";

        // Get the data
        DataSet files = MediaFileInfoProvider.GetMediaFiles(where, null);
        if (!DataHelper.DataSourceIsEmpty(files))
        {
            // Loop through the individual items
            foreach (DataRow fileDr in files.Tables[0].Rows)
            {
                // Create object from DataRow
                MediaFileInfo modifyFile = new MediaFileInfo(fileDr);

                // Update the property
                modifyFile.FileName = modifyFile.FileName.ToUpper();

                // Update the media file
                MediaFileInfoProvider.SetMediaFileInfo(modifyFile);
            }

            return true;
        }

        return false;
    }


    /// <summary>
    /// Deletes media file. Called when the "Delete file" button is pressed.
    /// Expects the CreateMediaFile method to be run first.
    /// </summary>
    private bool DeleteMediaFile()
    {
        // Get the media file
        MediaFileInfo deleteFile = MediaFileInfoProvider.GetMediaFileInfo(SiteContext.CurrentSiteName, "MyNewFolder/MyNewFile.gif", null);

        // Delete the media file
        MediaFileInfoProvider.DeleteMediaFileInfo(deleteFile);

        return (deleteFile != null);
    }

    #endregion


    #region "API Examples - Role permission in media library"

    /// <summary>
    /// Adds role permission to media library. Called when the "Add role permission to library " button is pressed.
    /// Expects the CreateMediaLibrary method to be run first.
    /// </summary>
    private bool AddRolePermissionToLibrary()
    {
        // Get the media library
        MediaLibraryInfo mediaLibrary = MediaLibraryInfoProvider.GetMediaLibraryInfo("MyNewLibrary", SiteContext.CurrentSiteName);

        // Get the role
        RoleInfo libraryRole = RoleInfoProvider.GetRoleInfo("CMSDeskAdmin", SiteContext.CurrentSiteID);

        // Get the permission
        PermissionNameInfo libraryPermission = PermissionNameInfoProvider.GetPermissionNameInfo("FileCreate", "CMS.MediaLibrary", null);

        if ((mediaLibrary != null) && (libraryRole != null) && (libraryPermission != null))
        {
            // Create a new media library role permision info
            MediaLibraryRolePermissionInfo rolePermission = new MediaLibraryRolePermissionInfo();

            // Set the values
            rolePermission.LibraryID = mediaLibrary.LibraryID;
            rolePermission.RoleID = libraryRole.RoleID;
            rolePermission.PermissionID = libraryPermission.PermissionId;

            // Add role permission to media library
            MediaLibraryRolePermissionInfoProvider.SetMediaLibraryRolePermissionInfo(rolePermission);

            return true;
        }

        return false;
    }


    /// <summary>
    /// Removes role permission from media library. Called when the "Remove role permission from library" button is pressed.
    /// Expects the AddRolePermissionToLibrary method to be run first.
    /// </summary>
    private bool RemoveRolePermissionFromLibrary()
    {
        // Get the media library
        MediaLibraryInfo mediaLibrary = MediaLibraryInfoProvider.GetMediaLibraryInfo("MyNewLibrary", SiteContext.CurrentSiteName);

        // Get the role
        RoleInfo libraryRole = RoleInfoProvider.GetRoleInfo("CMSDeskAdmin", SiteContext.CurrentSiteID);

        // Get the permission
        PermissionNameInfo libraryPermission = PermissionNameInfoProvider.GetPermissionNameInfo("FileCreate", "CMS.MediaLibrary", null);

        if ((mediaLibrary != null) && (libraryRole != null) && (libraryPermission != null))
        {
            // Get media library role permission info
            MediaLibraryRolePermissionInfo rolePermission = MediaLibraryRolePermissionInfoProvider.GetMediaLibraryRolePermissionInfo(mediaLibrary.LibraryID, libraryRole.RoleID, libraryPermission.PermissionId);

            // Remove role permission from media library
            MediaLibraryRolePermissionInfoProvider.DeleteMediaLibraryRolePermissionInfo(rolePermission);

            return (rolePermission != null);
        }

        return false;
    }

    #endregion
}