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_media : System.Web.UI.UserControl
{
#region methods
///
/// Method to Bind Media Data
///
private void BindMediaData()
{
try
{
ArrayList catList = xData.GetTypedByCriteriaSpecific("recId", typeof(oMedia), "isActive", "1", "sequence");
rptMedias.DataSource = catList;
rptMedias.DataBind();
}
catch (Exception ex)
{
exception.HandleException("Medias:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
///
/// Bind medias
///
private void BindMediaTypes()
{
ArrayList mediaTypes = new ArrayList();
try
{
mediaTypes = xData.GetTypedCollection("recId", typeof(oMediaType));
ddMediaTypes.DataSource = mediaTypes;
ddMediaTypes.DataTextField = "mediaType";
ddMediaTypes.DataValueField = "recId";
ddMediaTypes.DataBind();
}
catch (Exception ex)
{
exception.HandleException("medias:", 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("Medias:", MethodBase.GetCurrentMethod().Name, ex, 0);
Response.Redirect("/error", false);
}
}
///
/// Populate Form Values
///
///
private void PopulatePageFormValues(ref oMedia _media)
{
try
{
//populate values
txtTitle.Value = _media.title;
chkFeatured.Checked = _media.isFeatured;
if (_media.sequence > 0)
ddSequence.SelectedValue = _media.sequence.ToString();
if (_media.mediaType > 0)
{
ddMediaTypes.SelectedValue = _media.mediaType.ToString();
}
if (_media.mediaDate.Year > 1901)
txbMediaDate.Text = _media.mediaDate.ToString("dd/MM/yyyy");
txtAuthor.Value = _media.mediaAuthor;
edIntro.Content = _media.introduction;
edDetails.Content = _media.detail;
if (_media.mediathumb != String.Empty)
{
lblCurrentMedia.Text = _media.mediathumb.Replace(" ", "");
//populate preview
imgMediaThumbPreview.Visible = true;
imgMediaThumbPreview.ImageUrl = "~/upload/media/" + _media.mediaTypeName + "/" + _media.mediathumb;
}
else
{
imgMediaThumbPreview.Visible = false;
lblCurrentMedia.Text = "Current: none";
}
if (_media.mediaBanner != String.Empty)
{
lblCurrentMediaBanner.Text = _media.mediaBanner.Replace(" ", "");
//populate preview
imgMediaBannerPreview.Visible = true;
imgMediaBannerPreview.ImageUrl = "~/upload/media/" + _media.mediaTypeName + "/" + _media.mediaBanner;
}
else
{
imgMediaBannerPreview.Visible = false;
lblCurrentMediaBanner.Text = "Current: none";
}
}
catch (Exception ex)
{
exception.HandleException("Medias:", MethodBase.GetCurrentMethod().Name, ex, 0);
Response.Redirect("/error", false);
}
}
///
/// Save Form Values
///
///
private void SavePageFormValues(ref oMedia _media)
{
try
{
_media.title = txtTitle.Value;
_media.name = utils.stripCharacters(txtTitle.Value).Replace(" ", "");
_media.mediaType = int.Parse(ddMediaTypes.SelectedValue.ToString());
_media.mediaTypeName = Enum.GetName(typeof(pNums.MediaType), _media.mediaType);
_media.sequence = int.Parse(ddSequence.SelectedValue);
_media.dateEdited = DateTime.Now;
_media.mediaDate = utils.formatStringToDate(txbMediaDate.Text);
_media.introduction = edIntro.Content;
_media.detail = edDetails.Content;
_media.mediaAuthor = txtAuthor.Value;
_media.isFeatured = chkFeatured.Checked;
if (fuMediathumb.FileContent.Length > 0)
{
_media.mediathumb = utils.RandomString(9, true) + fuMediathumb.FileName.Substring(fuMediathumb.FileName.LastIndexOf("."));
//upload file
foreach (oMediaType bType in xData.GetTypedByCriteriaSpecific("recId", typeof(oMediaType), "recId", _media.mediaType.ToString()))
{
string tempPath = Server.MapPath("upload/temp/") + _media.mediathumb;
string destDir = Server.MapPath("upload/media/" + bType.mediaType + "/");
utils.validateFolder(Server.MapPath("upload/temp/"));
utils.validateFolder(destDir);
//upload file
fuMediathumb.SaveAs(tempPath);
//resize the file
utils.ResizeCropImagePrecise(tempPath, destDir, _media.mediathumb, bType.thumbWidth, bType.thumbHeight, true);
break;
}
}
else
_media.mediathumb = lblCurrentMedia.Text;
if (fuMediabanner.FileContent.Length > 0)
{
_media.mediaBanner = utils.RandomString(9, true) + fuMediabanner.FileName.Substring(fuMediabanner.FileName.LastIndexOf("."));
//upload file
foreach (oMediaType bType in xData.GetTypedByCriteriaSpecific("recId", typeof(oMediaType), "recId", _media.mediaType.ToString()))
{
string tempPath = Server.MapPath("upload/temp/") + _media.mediaBanner;
string destDir = Server.MapPath("upload/media/" + bType.mediaType + "/");
utils.validateFolder(Server.MapPath("upload/temp/"));
utils.validateFolder(destDir);
//upload file
fuMediabanner.SaveAs(tempPath);
//resize the file
utils.ResizeCropImagePrecise(tempPath, destDir, _media.mediaBanner, bType.bannerWidth, bType.bannerHeight, true);
break;
}
}
else
_media.mediaBanner = lblCurrentMediaBanner.Text;
}
catch (Exception ex)
{
exception.HandleException("Medias:", MethodBase.GetCurrentMethod().Name, ex, 0);
Response.Redirect("/error", false);
}
}
///
/// Method to Toggle Panels
///
///
private void TogglePanels(string panelName)
{
switch (panelName)
{
case "pnlMediaPage":
pnlMediaPage.Visible = true;
pnlMediaList.Visible = false;
break;
case "pnlMediaList":
pnlMediaPage.Visible = false;
pnlMediaList.Visible = true;
break;
}
//clear result
pnlResult.Visible = false;
}
#endregion
#region events
///
/// Page Load Event
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!Page.IsPostBack)
{
BindMediaData();
BindSequence();
BindMediaTypes();
}
}
catch (Exception ex)
{
exception.HandleException("Medias:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
///
/// New Media Click
///
///
///
protected void btnNewMedia_Click(object sender, EventArgs e)
{
try
{
//show Content Specific
TogglePanels("pnlMediaPage");
Session["MediaId"] = 0;
utils.disposeSession("Media");
oMedia Media = new oMedia();
//set media author to user
oUser usr = handler.ReturnUser();
Media.mediaDate = DateTime.Now;
Media.mediaAuthor = usr.name + " " + usr.surname;
PopulatePageFormValues(ref Media);
}
catch (Exception ex)
{
exception.HandleException("Medias:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
///
/// Edit the Media page
///
///
///
protected void lnkEdit_Click(object sender, EventArgs e)
{
oMedia _Media = new oMedia();
ArrayList catList = new ArrayList();
try
{
if (sender.GetType() == typeof(LinkButton))
{
//
int recId = int.Parse(((LinkButton)sender).CommandArgument);
if (recId > 0)
{
Session["MediaId"] = recId;
//get cat
catList = xData.GetTypedByCriteriaSpecific("recId", typeof(oMedia), "recId", recId.ToString());
//enumerate list
foreach (oMedia cat in catList)
{
//assign object
_Media = cat;
//populate page form
PopulatePageFormValues(ref _Media);
Session["Media"] = _Media;
break;
}
//show Media Form
TogglePanels("pnlMediaPage");
}
}
}
catch (Exception ex)
{
exception.HandleException("Medias:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
///
/// Remove the Media
///
///
///
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(oMedia)))
{
//rebind pages grid
BindMediaData();
pnlResult.Visible = true;
//display successful result
lblResult.Text = "the selected Media was deleted successfully.";
}
}
}
catch (Exception ex)
{
exception.HandleException("Medias:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
///
/// Cancel
///
///
///
protected void btnCancel_Click(object sender, EventArgs e)
{
try
{
Session["MediaId"] = 0;
utils.disposeSession("Media");
BindMediaData();
//show cat list
TogglePanels("pnlMediaList");
}
catch (Exception ex)
{
exception.HandleException("Medias:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
///
/// Save Click
///
///
///
protected void btnSave_Click(object sender, EventArgs e)
{
oMedia Media = new oMedia();
try
{
if (utils.verifySession("Media"))//update mode
{
Media = (oMedia)Session["Media"];
//save form values
SavePageFormValues(ref Media);
if (xData.UpdateTyped("recId", Media.recId.ToString(), typeof(oMedia), Media))
{
Session["MediaId"] = Media.recId;
Session["Media"] = Media;
BindMediaData();
PopulatePageFormValues(ref Media);
pnlResult.Visible = true;
lblResult.Text = "your changes were updated successfully.";
}
}
else
{
if (!xData.VerifyExists("recId", typeof(oMedia), "title", txtTitle.Value))
{
Media.isActive = true;
Media.dateAdded = DateTime.Now;
//save form values
SavePageFormValues(ref Media);
Media.recId = xData.SaveTyped("recId", typeof(oMedia), Media);
if (Media.recId > 0)
{
Session["MediaId"] = Media.recId;
Session["Media"] = Media;
BindMediaData();
PopulatePageFormValues(ref Media);
pnlResult.Visible = true;
lblResult.Text = "your media item was created successfully.";
}
}
else
{
pnlResult.Visible = true;
lblResult.Text = "A media item with this name already exists on the system";
}
}
}
catch (Exception ex)
{
exception.HandleException("Medias:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
#endregion
}