protected void btnDeleteImage_Click(object sender, EventArgs e)
        {
            //get id number
            Button btnDeleteImage   = (Button)sender;
            Int16  portfolioImageId = Convert.ToInt16(btnDeleteImage.CommandArgument);

            DeletePortfolioImage(SelectedPortfolioCategory.GetPortfolioImageById(portfolioImageId));

            //reload
            BindCategory();
        }
        private void DeletePortfolioImage(DbObjects.Business.PortfolioImage image)
        {
            string absolutePath = Server.MapPath(image.ImageUrl);

            //delete physical image file
            if (File.Exists(absolutePath))
            {
                File.Delete(absolutePath);
            }

            //remove image from database
            SelectedPortfolioCategory.RemoveImage(image.Id);
        }
        protected void btnDeleteCategory_Click(object sender, EventArgs e)
        {
            if (SelectedPortfolioCategory.IsInDatabase)
            {
                foreach (DbObjects.Business.PortfolioImage image in SelectedPortfolioCategory.Images)
                {
                    DeletePortfolioImage(image);
                }

                SelectedPortfolioCategory.Delete();
                SelectedPortfolioCategory = null;
            }

            Response.Redirect("Portfolio.aspx");
        }
        protected void btnSaveChanges_Click(object sender, EventArgs e)
        {
            lblError.Text = "";

            if (String.IsNullOrEmpty(txtName.Text))
            {
                lblError.Text = "Please give the category a name";
                mpeError.Show();
                return;
            }

            if (!(txtName.Text == SelectedPortfolioCategory.Name))
            {
                if (DbObjects.Business.PortfolioCategory.PortfolioCategoryNameExists(txtName.Text))
                {
                    lblError.Text = "There is already another category with that name";
                    mpeError.Show();
                    return;
                }
            }

            SelectedPortfolioCategory.Name = txtName.Text;
            SelectedPortfolioCategory.Save();

            for (int i = 0; i < rptImages.Items.Count; i++)
            {
                RadioButton rdoThumbnail = (RadioButton)rptImages.Items[i].FindControl("rdoThumbnail");

                if (rdoThumbnail.Checked)
                {
                    SelectedPortfolioCategory.SetThumbnailImage(Convert.ToInt16(rdoThumbnail.Attributes["portfolioImageId"]));
                    break;
                }
            }

            BindCategory();
        }