using System; using System.Collections.Generic; using System.Data; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using CMS.GlobalHelper; /// /// Media library methods - wrapping methods for macro resolver. /// public static class MediaLibraryMethods { /// /// Registers all media library methods to macro resolver. /// public static void RegisterMethods() { // Get media file URL MacroMethod getMediaFileUrl = new MacroMethod("GetMediaFileUrl", GetMediaFileUrl) { Comment = "Returns direct URL to the media file, user permissions are not checked.", Type = typeof(string), MinimumParameters = 5, AllowedTypes = new List() { typeof(TransformationNamespace) } }; getMediaFileUrl.AddParameter("libraryId", typeof(object), "Media library ID."); getMediaFileUrl.AddParameter("filePath", typeof(object), "File path."); getMediaFileUrl.AddParameter("fileGuid", typeof(object), "File GUID."); getMediaFileUrl.AddParameter("fileName", typeof(object), "File name."); getMediaFileUrl.AddParameter("useSecureLinks", typeof(object), "Determines whether to generate secure link."); getMediaFileUrl.AddParameter("downloadlink", typeof(object), "Determines whether disposition parametr should be added to permanent link."); MacroMethods.RegisterMethod(getMediaFileUrl); // Get media file URL with check MacroMethod getMediaFileUrlWithCheck = new MacroMethod("GetMediaFileUrlWithCheck", GetMediaFileUrlWithCheck) { Comment = "Returns URL to media file which is rewritten to calling GetMediaFile.aspx page where user permissions are checked.", Type = typeof(string), MinimumParameters = 2, AllowedTypes = new List() { typeof(TransformationNamespace) } }; getMediaFileUrlWithCheck.AddParameter("fileGuid", typeof(object), "File GUID."); getMediaFileUrlWithCheck.AddParameter("fileName", typeof(object), "File name."); MacroMethods.RegisterMethod(getMediaFileUrlWithCheck); // Get media file direct URL MacroMethod getMediaFileDirectUrl = new MacroMethod("GetMediaFileDirectUrl", GetMediaFileDirectUrl) { Comment = "Returns direct URL to the media file, user permissions are not checked.", Type = typeof(string), MinimumParameters = 2, AllowedTypes = new List() { typeof(TransformationNamespace) } }; getMediaFileDirectUrl.AddParameter("libraryId", typeof(object), "Media library ID."); getMediaFileDirectUrl.AddParameter("filePath", typeof(object), "File path."); MacroMethods.RegisterMethod(getMediaFileDirectUrl); // Get media file detail URL MacroMethod getMediaFileDetailUrl = new MacroMethod("GetMediaFileDetailUrl", GetMediaFileDetailUrl) { Comment = "Returns URL to detail of media file.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List() { typeof(TransformationNamespace) } }; getMediaFileDetailUrl.AddParameter("fileId", typeof(object), "File ID."); getMediaFileDetailUrl.AddParameter("parameter", typeof(string), "Query parameter name (\"fileId\" by default)."); MacroMethods.RegisterMethod(getMediaFileDetailUrl); } /// /// Returns direct URL to the media file, user permissions are not checked. /// /// /// (Media library ID; File path; File GUID; File name; Generate secure link) OR /// (Media library ID; File path; File GUID; File name; Generate secure link; Determines whether disposition parametr should be added to permanent link) /// public static object GetMediaFileUrl(params object[] parameters) { switch (parameters.Length) { case 5: return MediaLibraryFunctions.GetMediaFileUrl(parameters[0], parameters[1], parameters[2], parameters[3], parameters[4]); case 6: return MediaLibraryFunctions.GetMediaFileUrl(parameters[0], parameters[1], parameters[2], parameters[3], parameters[4], parameters[5]); default: throw new NotSupportedException(); } } /// /// Returns URL to media file which is rewritten to calling GetMediaFile.aspx page where user permissions are checked. /// /// File GUID; File name public static object GetMediaFileUrlWithCheck(params object[] parameters) { switch (parameters.Length) { case 2: return MediaLibraryFunctions.GetMediaFileUrl(parameters[0], parameters[1]); default: throw new NotSupportedException(); } } /// /// Returns direct URL to the media file, user permissions are not checked. /// /// Media library ID /// File path public static string GetMediaFileDirectUrl(params object[] parameters) { switch (parameters.Length) { case 2: return MediaLibraryFunctions.GetMediaFileDirectUrl(parameters[0], parameters[1]); default: throw new NotSupportedException(); } } /// /// Returns URL to detail of media file. /// /// (FileID) OR (File ID; Query parameter) public static object GetMediaFileDetailUrl(params object[] parameters) { switch (parameters.Length) { case 1: return MediaLibraryFunctions.GetMediaFileDetailUrl(parameters[0]); case 2: return MediaLibraryFunctions.GetMediaFileDetailUrl(ValidationHelper.GetString(parameters[1], ""), parameters[0]); default: throw new NotSupportedException(); } } }