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 }