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
}