using framework_business; using framework_library; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class controls_admin_banners : System.Web.UI.UserControl { #region methods /// /// Method to Bind Banner Data /// private void BindBannerData() { try { ArrayList catList = xData.GetTypedByCriteriaSpecific("recId", typeof(oBanner), "isActive", "1", "sequence"); rptBanners.DataSource = catList; rptBanners.DataBind(); } catch (Exception ex) { exception.HandleException("Banners:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Bind banners /// private void BindBannerTypes() { ArrayList bannerTypes = new ArrayList(); try { bannerTypes = xData.GetTypedCollection("recId", typeof(oBannerType)); ddBannerTypes.DataSource = bannerTypes; ddBannerTypes.DataTextField = "bannerType"; ddBannerTypes.DataValueField = "recId"; ddBannerTypes.DataBind(); } catch (Exception ex) { exception.HandleException("banners:", MethodBase.GetCurrentMethod().Name, ex, 0); Response.Redirect("Error.aspx", false); } } /// /// Method to Bind the slide Order Drop down /// private void BindSequence() { try { for (int i = 0; i < 20; i++) { //append sequence item ddSequence.Items.Add(new ListItem(i.ToString(), i.ToString())); } } catch (Exception ex) { exception.HandleException("Banners:", MethodBase.GetCurrentMethod().Name, ex, 0); Response.Redirect("/error", false); } } /// /// Populate Form Values /// /// private void PopulatePageFormValues(ref oBanner _banner) { try { //populate values txtBanner.Value = _banner.title; txtCaption.Value = _banner.caption; if (_banner.path == String.Empty) txtBannerURL.Value = ""; else txtBannerURL.Value = _banner.path; if (_banner.sequence > 0) ddSequence.SelectedValue = _banner.sequence.ToString(); if (_banner.bannerTypeId > 0) { ddBannerTypes.SelectedValue = _banner.bannerTypeId.ToString(); } /* JasR 2016-01-04 Set values to hide title or caption */ chkHideTitle.Checked = _banner.hideTitle; chkHideCaption.Checked = _banner.hideCaption; if (_banner.fileName != String.Empty) { lblCurrentBanner.Text = _banner.fileName.Replace(" ", ""); //populate preview foreach (oBannerType bType in xData.GetTypedByCriteriaSpecific("recId", typeof(oBannerType), "recId", _banner.bannerTypeId.ToString())) { imgBannerPreview.Visible = true; imgBannerPreview.ImageUrl = "~/upload/banner/" + bType.bannerType + "/" + _banner.fileName; } } else { imgBannerPreview.Visible = false; lblCurrentBanner.Text = "Current: none"; } if (_banner.startDate.Year > 1901) txbStartDate.Text = _banner.startDate.ToString("dd/MM/yyyy"); if (_banner.endDate.Year > 1901) txbEndDate.Text = _banner.endDate.ToString("dd/MM/yyyy"); } catch (Exception ex) { exception.HandleException("Banners:", MethodBase.GetCurrentMethod().Name, ex, 0); Response.Redirect("/error", false); } } /// /// Save Form Values /// /// private void SavePageFormValues(ref oBanner _banner) { try { _banner.title = txtBanner.Value; _banner.sequence = int.Parse(ddSequence.SelectedValue); _banner.caption = txtCaption.Value; _banner.path = txtBannerURL.Value; _banner.sequence = int.Parse(ddSequence.SelectedValue); _banner.bannerTypeId = int.Parse(ddBannerTypes.SelectedValue.ToString()); /* JasR 2016-01-04 Set values to hide title or caption */ _banner.hideTitle = chkHideTitle.Checked; _banner.hideCaption = chkHideCaption.Checked; _banner.dateSaved = DateTime.Now; _banner.startDate = utils.formatStringToDate(txbStartDate.Text); _banner.endDate = utils.formatStringToDate(txbEndDate.Text); if (fuBanner.FileContent.Length > 0) { _banner.fileName = fuBanner.FileName.Replace(" ", ""); //upload file foreach (oBannerType bType in xData.GetTypedByCriteriaSpecific("recId", typeof(oBannerType), "recId", _banner.bannerTypeId.ToString())) { string tempPath = Server.MapPath("upload/temp/") + _banner.fileName; string destDir = Server.MapPath("upload/banner/" + bType.bannerType + "/"); utils.validateFolder(Server.MapPath("upload/temp/")); utils.validateFolder(destDir); //upload file fuBanner.SaveAs(tempPath); //resize the file utils.ResizeCropImagePrecise(tempPath, destDir, _banner.fileName, bType.width, bType.height, true); break; } } else _banner.fileName = lblCurrentBanner.Text; } catch (Exception ex) { exception.HandleException("Banners:", MethodBase.GetCurrentMethod().Name, ex, 0); Response.Redirect("/error", false); } } /// /// Method to Toggle Panels /// /// private void TogglePanels(string panelName) { switch (panelName) { case "pnlBannerPage": pnlBannerPage.Visible = true; pnlBannerList.Visible = false; break; case "pnlBannerList": pnlBannerPage.Visible = false; pnlBannerList.Visible = true; break; } //clear result pnlResult.Visible = false; } /// /// Method to populate the banner info and dimensions /// private void PopulateBannerDimensions(int bannerTypeId) { ArrayList bannerTypes = new ArrayList(); try { foreach (oBannerType bType in xData.GetTypedByCriteriaSpecific("recId", typeof(oBannerType), "recId", bannerTypeId.ToString())) { //populate dimensions lblDimensions.Text = "(Width: " + bType.width + " by Height: " + bType.height + ")"; break; } } catch (Exception ex) { exception.HandleException("Banners:", MethodBase.GetCurrentMethod().Name, ex, 0); Response.Redirect("Error.aspx", false); } } #endregion #region events /// /// Page Load Event /// /// /// protected void Page_Load(object sender, EventArgs e) { try { if (!Page.IsPostBack) { BindBannerData(); BindSequence(); BindBannerTypes(); if (ddBannerTypes.SelectedValue != String.Empty) PopulateBannerDimensions(int.Parse(ddBannerTypes.SelectedValue.ToString())); } } catch (Exception ex) { exception.HandleException("Banners:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// New Banner Click /// /// /// protected void btnNewBanner_Click(object sender, EventArgs e) { try { //show Content Specific TogglePanels("pnlBannerPage"); Session["BannerId"] = 0; utils.disposeSession("Banner"); oBanner Banner = new oBanner(); PopulatePageFormValues(ref Banner); } catch (Exception ex) { exception.HandleException("Banners:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Edit the Banner page /// /// /// protected void lnkEdit_Click(object sender, EventArgs e) { oBanner _Banner = new oBanner(); ArrayList catList = new ArrayList(); try { if (sender.GetType() == typeof(LinkButton)) { // int recId = int.Parse(((LinkButton)sender).CommandArgument); if (recId > 0) { Session["BannerId"] = recId; //get cat catList = xData.GetTypedByCriteriaSpecific("recId", typeof(oBanner), "recId", recId.ToString()); //enumerate list foreach (oBanner cat in catList) { //assign object _Banner = cat; //populate page form PopulatePageFormValues(ref _Banner); Session["Banner"] = _Banner; break; } //show Banner Form TogglePanels("pnlBannerPage"); } } } catch (Exception ex) { exception.HandleException("Banners:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Remove the Banner /// /// /// protected void lnkRemove_Click(object sender, EventArgs e) { try { if (sender.GetType() == typeof(LinkButton)) { // int recId = int.Parse(((LinkButton)sender).CommandArgument); //Delete cat if (xData.DeleteTyped("recId", recId.ToString(), typeof(oBanner))) { //rebind pages grid BindBannerData(); pnlResult.Visible = true; //display successful result lblResult.Text = "the selected Banner was deleted successfully."; } } } catch (Exception ex) { exception.HandleException("Banners:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Cancel /// /// /// protected void btnCancel_Click(object sender, EventArgs e) { try { Session["BannerId"] = 0; utils.disposeSession("Banner"); BindBannerData(); //show cat list TogglePanels("pnlBannerList"); } catch (Exception ex) { exception.HandleException("Banners:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Save Click /// /// /// protected void btnSave_Click(object sender, EventArgs e) { oBanner Banner = new oBanner(); try { if (utils.verifySession("Banner"))//update mode { Banner = (oBanner)Session["Banner"]; //save form values SavePageFormValues(ref Banner); if (xData.UpdateTyped("recId", Banner.recId.ToString(), typeof(oBanner), Banner)) { Session["BannerId"] = Banner.recId; Session["Banner"] = Banner; BindBannerData(); PopulatePageFormValues(ref Banner); pnlResult.Visible = true; lblResult.Text = "your changes were updated successfully."; } } else { if (!xData.VerifyExists("recId", typeof(oBanner), "title", txtBanner.Value)) { Banner.isActive = true; //save form values SavePageFormValues(ref Banner); Banner.recId = xData.SaveTyped("recId", typeof(oBanner), Banner); if (Banner.recId > 0) { Session["BannerId"] = Banner.recId; Session["Banner"] = Banner; BindBannerData(); PopulatePageFormValues(ref Banner); pnlResult.Visible = true; lblResult.Text = "your Banner was created successfully."; } } else { pnlResult.Visible = true; lblResult.Text = "A Banner with this name already exists on the system"; } } } catch (Exception ex) { exception.HandleException("Banners:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// Selected Index Changed /// /// /// protected void ddBannerTypes_SelectedIndexChanged(object sender, EventArgs e) { try { if (ddBannerTypes.Items.Count > 0) { PopulateBannerDimensions(int.Parse(ddBannerTypes.SelectedValue.ToString())); } } catch (Exception ex) { exception.HandleException("Banners:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } #endregion }