Imports System.Text Imports System.Web Imports System.IO Imports System.Drawing Imports System.Drawing.Imaging Imports System.Drawing.Drawing2D Imports BVSoftware.BVC.Core Public Class products_categories_edit Inherits BaseAdminPage Protected WithEvents NameField As System.Web.UI.WebControls.TextBox Protected WithEvents CancelButton As System.Web.UI.WebControls.ImageButton Protected WithEvents SaveButton As System.Web.UI.WebControls.ImageButton Protected WithEvents ValidationSummary1 As System.Web.UI.WebControls.ValidationSummary Protected WithEvents MetaDescriptionControl As BVSoftware.WebControls.MetaTag Protected WithEvents MetaKeywordsControl As BVSoftware.WebControls.MetaTag Protected WithEvents MetaKeywordsField As System.Web.UI.WebControls.TextBox Protected WithEvents MetaDescriptionField As System.Web.UI.WebControls.TextBox Protected WithEvents MetaTitleField As System.Web.UI.WebControls.TextBox Protected WithEvents ImageField As System.Web.UI.WebControls.TextBox Protected WithEvents rbSourcePrice As System.Web.UI.WebControls.RadioButton Protected WithEvents rbSourceManual As System.Web.UI.WebControls.RadioButton Protected WithEvents rbSourceManufacturer As System.Web.UI.WebControls.RadioButton Protected WithEvents rbSourceVendor As System.Web.UI.WebControls.RadioButton Protected WithEvents rbSourceType As System.Web.UI.WebControls.RadioButton Protected WithEvents btnSelectProducts As System.Web.UI.WebControls.ImageButton Protected WithEvents PriceLowField As System.Web.UI.WebControls.TextBox Protected WithEvents PriceHighField As System.Web.UI.WebControls.TextBox Protected WithEvents rbDisplayGrid As System.Web.UI.WebControls.RadioButton Protected WithEvents ColumnsField As System.Web.UI.WebControls.TextBox Protected WithEvents ColumnsValidator As System.Web.UI.WebControls.RangeValidator Protected WithEvents RowsField As System.Web.UI.WebControls.TextBox Protected WithEvents RangeValidator1 As System.Web.UI.WebControls.RangeValidator Protected WithEvents rbDisplayList As System.Web.UI.WebControls.RadioButton Protected WithEvents DetailListSizeField As System.Web.UI.WebControls.TextBox Protected WithEvents ListSizeField As System.Web.UI.WebControls.TextBox Protected WithEvents rbDisplayDetailList As System.Web.UI.WebControls.RadioButton Protected WithEvents lstManufacturer As BVSoftware.WebControls.SelectDropDownList Protected WithEvents lstVendor As BVSoftware.WebControls.SelectDropDownList Protected WithEvents lstType As BVSoftware.WebControls.SelectDropDownList Protected WithEvents chkShowTitle As System.Web.UI.WebControls.CheckBox Protected WithEvents btnSelectBackground As System.Web.UI.WebControls.ImageButton Protected WithEvents rbSourceLatest As System.Web.UI.WebControls.RadioButton Protected WithEvents LatestProductCountField As System.Web.UI.WebControls.TextBox Protected WithEvents chkShowDescription As System.Web.UI.WebControls.CheckBox Protected WithEvents BannerImageField As System.Web.UI.WebControls.TextBox Protected WithEvents btnSelectBanner As System.Web.UI.WebControls.ImageButton Protected WithEvents MenuOffImageURLField As System.Web.UI.WebControls.TextBox Protected WithEvents MenuOnImageURLField As System.Web.UI.WebControls.TextBox Protected WithEvents CustomPageURLField As System.Web.UI.WebControls.TextBox Protected WithEvents chkCustomPageOn As System.Web.UI.WebControls.CheckBox Protected WithEvents chkCustomPageNewWindow As System.Web.UI.WebControls.CheckBox Protected WithEvents btnSelectMenuOff As System.Web.UI.WebControls.ImageButton Protected WithEvents btnSelectMenuOn As System.Web.UI.WebControls.ImageButton Protected WithEvents msg As BVSoftware.WebControls.WebPageMessage Protected WithEvents chkShowInTopMenu As System.Web.UI.WebControls.CheckBox Protected WithEvents chkHidden As System.Web.UI.WebControls.CheckBox Protected WithEvents DescriptionField As System.Web.UI.WebControls.TextBox #Region " Web Form Designer Generated Code " 'This call is required by the Web Form Designer. Private Sub InitializeComponent() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init 'CODEGEN: This method call is required by the Web Form Designer 'Do not modify it using the code editor. InitializeComponent() End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load BVC2004Store.CheckThisPage(BVSoftware.BVC.Core.Security.RolePermission.LoginToAdmin, BVSoftware.BVC.Core.Security.RolePermission.AccessProductArea) If Not Page.IsPostBack Then MetaKeywordsControl.Content = WebAppSettings.MetaKeywords MetaDescriptionControl.Content = WebAppSettings.MetaDescription Dim ID As Integer = Request.Params("id") If ID > 0 Then ViewState("EditID") = ID Else ViewState("EditID") = 0 End If PopulateDropdownLists() LoadCategoryInfo() End If End Sub Sub LoadCategoryInfo() Dim c As Catalog.Category c = CatalogServices.Categories.GetCategory(ViewState("EditID")) If Not c Is Nothing Then Me.NameField.Text = c.Name Me.DescriptionField.Text = c.Description Me.MetaDescriptionField.Text = c.MetaDescription Me.MetaKeywordsField.Text = c.MetaKeywords Me.MetaTitleField.Text = c.MetaTitle Me.ImageField.Text = c.ImageURL If Not Me.Request.Params("BGImage") Is Nothing Then Me.ImageField.Text = Request.Params("BGImage") End If Select Case c.SourceType Case Catalog.CategorySourceType.ByManufacturer Me.rbSourceManufacturer.Checked = True Case Catalog.CategorySourceType.ByType Me.rbSourceType.Checked = True Case Catalog.CategorySourceType.ByVendor Me.rbSourceVendor.Checked = True Case Catalog.CategorySourceType.Manual Me.rbSourceManual.Checked = True Case Catalog.CategorySourceType.PriceRange Me.rbSourcePrice.Checked = True Case Catalog.CategorySourceType.ByLatestProducts Me.rbSourceLatest.Checked = True End Select Select Case c.DisplayType Case Catalog.CategoryDisplayType.DetailList Me.rbDisplayDetailList.Checked = True Case Catalog.CategoryDisplayType.Grid Me.rbDisplayGrid.Checked = True Case Catalog.CategoryDisplayType.List Me.rbDisplayList.Checked = True End Select Me.PriceLowField.Text = c.PriceRangeLow Me.PriceHighField.Text = c.PriceRangeHigh Me.lstManufacturer.SelectByValue(c.ManufacturerID) Me.lstVendor.SelectByValue(c.VendorID) Me.lstType.SelectByValue(c.TypeID) Me.ColumnsField.Text = c.GridColumns Me.RowsField.Text = c.GridRows Me.ListSizeField.Text = c.ListSize Me.DetailListSizeField.Text = c.DetailListSize Me.LatestProductCountField.Text = c.LatestProductCount Me.chkShowDescription.Checked = c.ShowDescription Me.chkShowTitle.Checked = c.ShowTitle Me.BannerImageField.Text = c.BannerImageURL If Not Me.Request.Params("BannerImage") Is Nothing Then Me.BannerImageField.Text = Request.Params("BannerImage") End If Me.MenuOffImageURLField.Text = c.MenuOffImageURL If Not Me.Request.Params("MenuOff") Is Nothing Then Me.MenuOffImageURLField.Text = Request.Params("MenuOff") End If Me.MenuOnImageURLField.Text = c.MenuOnImageURL If Not Me.Request.Params("MenuOn") Is Nothing Then Me.MenuOnImageURLField.Text = Request.Params("MenuOn") End If Me.chkCustomPageOn.Checked = c.CustomPageOn Me.CustomPageURLField.Text = c.CustomPageURL Me.chkCustomPageNewWindow.Checked = c.CustomPageOpenInNewWindow Me.chkShowInTopMenu.Checked = c.ShowInTopMenu Me.chkHidden.Checked = c.Hidden ' Save Image Selections even without clicking SAVE c.BannerImageURL = Me.BannerImageField.Text c.MenuOffImageURL = Me.MenuOffImageURLField.Text c.MenuOnImageURL = Me.MenuOnImageURLField.Text c.ImageURL = Me.ImageField.Text CatalogServices.Categories.UpdateCategory(c) End If c = Nothing End Sub Private Sub PopulateDropdownLists() Me.lstVendor.DataSource = ContactServices.Vendors.ListVendors Me.lstVendor.DataTextField = "DisplayName" Me.lstVendor.DataValueField = "id" Me.lstVendor.DataBind() Me.lstVendor.Items.Insert(0, New ListItem("- No Vendor -", 0)) Me.lstManufacturer.DataSource = ContactServices.Manufacturers.ListManufacturers Me.lstManufacturer.DataTextField = "DisplayName" Me.lstManufacturer.DataValueField = "id" Me.lstManufacturer.DataBind() Me.lstManufacturer.Items.Insert(0, New ListItem("- No Manufacturer -", 0)) Me.lstType.DataSource = CatalogServices.ProductTypes.ListProductTypes Me.lstType.DataTextField = "ProductTypeName" Me.lstType.DataValueField = "ID" Me.lstType.DataBind() End Sub Private Sub CancelButton_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles CancelButton.Click Response.Redirect("products_categories.aspx") End Sub Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles SaveButton.Click If Me.SaveCurrentSettings() = True Then Me.Response.Redirect("products_categories.aspx") End If End Sub Private Function SaveCurrentSettings() As Boolean msg.Clear() Try Dim c As Catalog.Category c = CatalogServices.Categories.GetCategory(ViewState("EditID")) If Not c Is Nothing Then c.Name = Me.NameField.Text c.Description = Me.DescriptionField.Text c.MetaKeywords = Me.MetaKeywordsField.Text c.MetaTitle = Me.MetaTitleField.Text c.MetaDescription = Me.MetaDescriptionField.Text c.ImageURL = Me.ImageField.Text.Trim If Me.rbSourceManual.Checked = True Then c.SourceType = Catalog.CategorySourceType.Manual ElseIf Me.rbSourceManufacturer.Checked = True Then c.SourceType = Catalog.CategorySourceType.ByManufacturer ElseIf Me.rbSourcePrice.Checked = True Then c.SourceType = Catalog.CategorySourceType.PriceRange ElseIf Me.rbSourceType.Checked = True Then c.SourceType = Catalog.CategorySourceType.ByType ElseIf Me.rbSourceVendor.Checked = True Then c.SourceType = Catalog.CategorySourceType.ByVendor ElseIf Me.rbSourceLatest.Checked = True Then c.SourceType = Catalog.CategorySourceType.ByLatestProducts End If If Me.rbDisplayList.Checked = True Then c.DisplayType = Catalog.CategoryDisplayType.List ElseIf Me.rbDisplayDetailList.Checked = True Then c.DisplayType = Catalog.CategoryDisplayType.DetailList Else c.DisplayType = Catalog.CategoryDisplayType.Grid End If c.PriceRangeLow = Me.PriceLowField.Text c.PriceRangeHigh = Me.PriceHighField.Text c.ManufacturerID = Me.lstManufacturer.SelectedValue c.VendorID = Me.lstVendor.SelectedValue c.TypeID = Me.lstType.SelectedValue c.GridColumns = Me.ColumnsField.Text c.GridRows = Me.RowsField.Text c.ListSize = Me.ListSizeField.Text c.DetailListSize = Me.DetailListSizeField.Text c.BannerImageURL = Me.BannerImageField.Text c.LatestProductCount = Me.LatestProductCountField.Text c.ShowDescription = Me.chkShowDescription.Checked c.ShowTitle = Me.chkShowTitle.Checked c.CustomPageOn = Me.chkCustomPageOn.Checked c.CustomPageURL = Me.CustomPageURLField.Text.Trim c.CustomPageOpenInNewWindow = Me.chkCustomPageNewWindow.Checked c.MenuOnImageURL = Me.MenuOnImageURLField.Text.Trim c.MenuOffImageURL = Me.MenuOffImageURLField.Text.Trim c.ShowInTopMenu = Me.chkShowInTopMenu.Checked c.Hidden = Me.chkHidden.Checked If CatalogServices.Categories.UpdateCategory(c) = True Then Return True Else Return False End If Else Return False End If c = Nothing Catch Ex As Exception msg.ShowException(Ex) Return False End Try End Function Private Sub btnSelectProducts_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnSelectProducts.Click If SaveCurrentSettings() = True Then Response.Redirect("products_categories_edit_products.aspx?id=" & ViewState("EditID")) End If End Sub Private Sub btnSelectBackground_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnSelectBackground.Click If SaveCurrentSettings() = True Then Response.Redirect("ImageBrowser.aspx?ReturnUrl=" & Server.UrlEncode("products_categories_edit.aspx?id=" & ViewState("EditID")) & "&ReturnName=" & Server.UrlEncode("BGImage") & "&startDir=images\categories") End If End Sub Private Sub btnSelectBanner_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnSelectBanner.Click If SaveCurrentSettings() = True Then Response.Redirect("ImageBrowser.aspx?ReturnUrl=" & Server.UrlEncode("products_categories_edit.aspx?id=" & ViewState("EditID")) & "&ReturnName=" & Server.UrlEncode("BannerImage") & "&startDir=images\categories") End If End Sub Private Sub btnSelectMenuOff_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnSelectMenuOff.Click If SaveCurrentSettings() = True Then Response.Redirect("ImageBrowser.aspx?ReturnUrl=" & Server.UrlEncode("products_categories_edit.aspx?id=" & ViewState("EditID")) & "&ReturnName=" & Server.UrlEncode("MenuOff") & "&startDir=images") End If End Sub Private Sub btnSelectMenuOn_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnSelectMenuOn.Click If SaveCurrentSettings() = True Then Response.Redirect("ImageBrowser.aspx?ReturnUrl=" & Server.UrlEncode("products_categories_edit.aspx?id=" & ViewState("EditID")) & "&ReturnName=" & Server.UrlEncode("MenuOn") & "&startDir=images") End If End Sub End Class