using System; using System.Data; using System.Web; using System.Web.UI; using CMS.CMSHelper; using CMS.GlobalHelper; using CMS.MediaLibrary; using CMS.PortalControls; public partial class CMSWebParts_MediaLibrary_MediaFileDataSource : CMSAbstractWebPart { #region "Properties" /// /// Gets or sets WHERE condition. /// public string WhereCondition { get { return ValidationHelper.GetString(GetValue("WhereCondition"), String.Empty); } set { SetValue("WhereCondition", value); srcMedia.WhereCondition = value; } } /// /// Gets or sets ORDER BY condition. /// public string OrderBy { get { return ValidationHelper.GetString(GetValue("OrderBy"), String.Empty); } set { SetValue("OrderBy", value); srcMedia.OrderBy = value; } } /// /// Gets or sets top N selected documents. /// public int SelectTopN { get { return ValidationHelper.GetInteger(GetValue("SelectTopN"), 0); } set { SetValue("SelectTopN", value); srcMedia.TopN = value; } } /// /// Gets or sets the source filter name. /// public string FilterName { get { return ValidationHelper.GetString(GetValue("FilterName"), String.Empty); } set { SetValue("FilterName", value); srcMedia.SourceFilterName = value; } } /// /// Gets or sets the cache item name. /// public override string CacheItemName { get { return base.CacheItemName; } set { base.CacheItemName = value; srcMedia.CacheItemName = value; } } /// /// Cache dependencies, each cache dependency on a new line. /// public override string CacheDependencies { get { return ValidationHelper.GetString(base.CacheDependencies, srcMedia.CacheDependencies); } set { base.CacheDependencies = value; srcMedia.CacheDependencies = value; } } /// /// Gets or sets the cache minutes. /// public override int CacheMinutes { get { return base.CacheMinutes; } set { base.CacheMinutes = value; srcMedia.CacheMinutes = value; } } /// /// Gest or sets selected columns. /// public string Columns { get { return ValidationHelper.GetString(GetValue("Columns"), String.Empty); } set { SetValue("Columns", value); srcMedia.SelectedColumns = value; } } /// /// Gets or sets the source library name. /// public string LibraryName { get { string libraryName = ValidationHelper.GetString(GetValue("LibraryName"), String.Empty); if ((string.IsNullOrEmpty(libraryName) || libraryName == MediaLibraryInfoProvider.CURRENT_LIBRARY) && (MediaLibraryContext.CurrentMediaLibrary != null)) { return MediaLibraryContext.CurrentMediaLibrary.LibraryName; } return libraryName; } set { SetValue("LibraryName", value); srcMedia.LibraryName = value; } } /// /// Gets or sets the source file path. /// public string FilePath { get { return ValidationHelper.GetString(GetValue("FilePath"), String.Empty); } set { SetValue("FilePath", value); srcMedia.FilePath = value; } } /// /// Gets or sets the allowed file extensions. /// public string FileExtensions { get { return ValidationHelper.GetString(GetValue("FileExtension"), String.Empty); } set { SetValue("FileExtension", value); srcMedia.FileExtensions = value; } } /// /// Gets or sets the file id querysting parameter. /// public string FileIDQueryStringKey { get { return ValidationHelper.GetString(GetValue("FileIDQueryStringKey"), String.Empty); } set { SetValue("FileIDQueryStringKey", value); } } /// /// Gets or sets Check permissions property. /// public bool CheckPermissions { get { return ValidationHelper.GetBoolean(GetValue("CheckPermissions"), true); } set { SetValue("CheckPermissions", value); srcMedia.CheckPermissions = value; } } /// /// Gets or sets the site name. /// public string SiteName { get { return DataHelper.GetNotEmpty(GetValue("SiteName"), ""); } set { SetValue("SiteName", value); srcMedia.SiteName = value; } } /// /// Indicates if group files should be included. /// public bool ShowGroupFiles { get { return ValidationHelper.GetBoolean(GetValue("ShowGroupFiles"), false); } set { SetValue("ShowGroupFiles", value); srcMedia.ShowGroupFiles = value; } } #endregion #region "Methods" /// /// Content loaded event handler. /// public override void OnContentLoaded() { base.OnContentLoaded(); SetupControl(); } /// /// Initializes the control properties. /// protected void SetupControl() { if (StopProcessing) { // Do nothing } else { // Prepare site name string siteName = SiteName; if (String.IsNullOrEmpty(siteName)) { siteName = CMSContext.CurrentSiteName; } srcMedia.SiteName = siteName; srcMedia.WhereCondition = WhereCondition; srcMedia.OrderBy = OrderBy; srcMedia.TopN = SelectTopN; srcMedia.FilterName = ID; srcMedia.SourceFilterName = FilterName; srcMedia.CacheItemName = CacheItemName; srcMedia.CacheDependencies = CacheDependencies; srcMedia.CacheMinutes = CacheMinutes; srcMedia.SelectedColumns = Columns; srcMedia.LibraryName = LibraryName; srcMedia.FilePath = FilePath; srcMedia.FileExtensions = FileExtensions; srcMedia.CheckPermissions = CheckPermissions; srcMedia.ShowGroupFiles = ShowGroupFiles; srcMedia.OnFilterChanged += srcMedia_OnFilterChanged; int fid = QueryHelper.GetInteger(FileIDQueryStringKey, 0); if (fid > 0) { srcMedia.WhereCondition = "FileID = " + fid; } } } private void srcMedia_OnFilterChanged() { srcMedia.InvalidateLoadedData(); srcMedia.WhereCondition = WhereCondition; srcMedia.OrderBy = OrderBy; srcMedia.TopN = SelectTopN; } /// /// Clears cache. /// public override void ClearCache() { srcMedia.ClearCache(); } #endregion }