Ejemplo n.º 1
0
        /// <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);
                }
            }
        }
Ejemplo n.º 2
0
    /// <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();
    }