/// <summary> /// Called when [deleting]. /// </summary> protected override void OnDeleting() { base.OnDeleting(); CatalogRelationDto catalogRelationDto = CatalogContext.Current.GetCatalogRelationDto(PrimaryKeyId.ToString()); if (catalogRelationDto.CatalogItemAsset.Count > 0) { for (int i = 0; i < catalogRelationDto.CatalogItemAsset.Count; i++) { catalogRelationDto.CatalogItemAsset[i].Delete(); } if (catalogRelationDto.HasChanges()) { CatalogContext.Current.SaveCatalogRelationDto(catalogRelationDto); } } // Clean Up BlobStorage BlobStorageProvider provider = BlobStorage.Providers[BlobStorageProvider]; if (provider != null) { BlobInfo blobInfo = provider.GetInfo((Guid)BlobUid); if (blobInfo != null) { provider.ReleaseStream(blobInfo); } } }
/// <summary> /// Binds the data. /// </summary> private void BindData() { if (DataSource == null) { this.Visible = false; return; } List <ItemAsset> assets = new List <ItemAsset>(); if (!String.IsNullOrEmpty(GroupName)) { foreach (ItemAsset asset in DataSource) { if (asset.GroupName.Equals(GroupName)) { assets.Add(asset); } } } else { foreach (ItemAsset asset in DataSource) { assets.Add(asset); } } this.Visible = true; List <FolderElement> elements = new List <FolderElement>(); foreach (ItemAsset asset in assets) { if (asset.AssetType.Equals("file")) { FolderElement[] myElements = FolderElement.List <FolderElement>(FolderElement.GetAssignedMetaClass(), new FilterElement[] { new FilterElement("FolderElementId", FilterElementType.Equal, asset.AssetKey) }); if (myElements.Length > 0) { elements.Add(myElements[0]); } } else { FolderElement[] myElements = FolderElement.List <FolderElement>(FolderElement.GetAssignedMetaClass(), new FilterElement[] { new FilterElement("ParentId", FilterElementType.Equal, asset.AssetKey) }); if (myElements.Length > 0) { foreach (FolderElement myElement in myElements) { elements.Add(myElement); } } } } DataTable table = new DataTable(); table.Columns.Add(new DataColumn("ID", typeof(string))); table.Columns.Add(new DataColumn("Name", typeof(string))); table.Columns.Add(new DataColumn("Size", typeof(string))); table.Columns.Add(new DataColumn("Url", typeof(string))); table.Columns.Add(new DataColumn("Filename", typeof(string))); table.Columns.Add(new DataColumn("Icon", typeof(string))); table.Columns.Add(new DataColumn("Created", typeof(DateTime))); foreach (FolderElement element in elements) { DataRow newRow = table.NewRow(); newRow["ID"] = element.PrimaryKeyId.ToString(); newRow["Name"] = element.Name; BlobStorageProvider prov = BlobStorage.Providers[element.BlobStorageProvider]; BlobInfo info = prov.GetInfo(new Guid(element.BlobUid.ToString())); newRow["FileName"] = info.FileName; newRow["Url"] = String.Format("~{0}", element.GetUrl()); //DownloadFileUrlBuilder.GetUrl("iis", info); newRow["Icon"] = CommonHelper.GetIcon(info.FileName); newRow["Created"] = info.Created; newRow["Size"] = CommerceHelper.ByteSizeToStr(info.ContentSize); table.Rows.Add(newRow); } DownloadsList.DataSource = table; DownloadsList.DataBind(); }