using framework_business; using framework_library; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Web; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; public partial class controls_module_calendarEventType : System.Web.UI.UserControl { public int CalendarId { get { if (ViewState["calendarId"] == null) return 0; else return (int)ViewState["calendarId"]; } set { ViewState["calendarId"] = value; } } #region methods /// /// Reload Control /// /// public void ReloadControl(int calId) { this.CalendarId = calId; BindGrid(); BindSequence(); } //bind Event Types Grid private void BindGrid() { try { DataTable dt = xData.GetTypedByCriteriaSpecificTable("recId", typeof(oCalendarEventType), "calendarId", this.CalendarId.ToString(), "sequence"); rptEventType.DataSource = dt; rptEventType.DataBind(); } catch (Exception ex) { exception.HandleException("CalendarEventType:", MethodBase.GetCurrentMethod().Name, ex, 0); Response.Redirect("Error.aspx", false); } } /// /// Bind Sequences /// 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("CalendarEventType:", MethodBase.GetCurrentMethod().Name, ex, 0); Response.Redirect("/error", false); } } /// /// Toggle Display /// /// private void TogglePanels(string panelName) { switch (panelName) { case "pnlForm": pnlForm.Visible = true; pnlGrid.Visible = false; lblHeading.Visible = true; break; case "pnlGrid": pnlForm.Visible = false; pnlGrid.Visible = true; lblHeading.Visible = false; break; } //clear result pnlResult.Visible = false; pnlGridResult.Visible = false; } /// /// Populate Form Values /// /// private void PopulateFormValues(oCalendarEventType eventType) { try { txtEventType.Text = eventType.name; chkActive.Checked = eventType.isActive; ddColour.ClearSelection(); if (ddColour.Items.FindByValue(eventType.colour.ToString()) != null) { ddColour.Items.FindByValue(eventType.colour.ToString()).Selected = true; ddColour.Attributes.Add("style", "background-color:" + ddColour.SelectedItem.Value); } ddSequence.ClearSelection(); if (ddSequence.Items.FindByValue(eventType.sequence.ToString()) != null) ddSequence.Items.FindByValue(eventType.sequence.ToString()).Selected = true; if (eventType.interval > 0) { ddInterval.SelectedValue = eventType.interval.ToString(); } else { ddInterval.SelectedValue = "15"; } } catch (Exception ex) { exception.HandleException("CalendarEventType:", MethodBase.GetCurrentMethod().Name, ex, Session["admin"]); Response.Redirect("/error", false); } } /// /// Save Form Values /// /// private void SaveFormValues(ref oCalendarEventType eventType) { try { eventType.name = txtEventType.Text; eventType.isActive = chkActive.Checked; eventType.colour = ddColour.SelectedItem.Value; eventType.interval = int.Parse(ddInterval.SelectedValue); eventType.sequence = int.Parse(ddSequence.SelectedItem.Value); eventType.calendarId = this.CalendarId; } catch (Exception ex) { exception.HandleException("CalendarEventType:", MethodBase.GetCurrentMethod().Name, ex, Session["admin"]); Response.Redirect("/error", false); } } #endregion #region events /// /// /// /// /// protected void Page_Load(object sender, EventArgs e) { try { if (!Page.IsPostBack) { BindGrid(); BindSequence(); } ScriptManager.RegisterStartupScript(Page, Page.GetType(), "setLoadOptions", "if(typeof(setLoadOptions) == \"function\"){window.onload = setLoadOptions()};", true); } catch (Exception ex) { exception.HandleException("CalendarEventType:", MethodBase.GetCurrentMethod().Name, ex, Session["admin"]); Response.Redirect("/error", false); } } /// /// /// /// /// protected void btnNewType_Click(object sender, EventArgs e) { try { utils.disposeSession("EventType"); oCalendarEventType eventType = new oCalendarEventType(); PopulateFormValues(eventType); TogglePanels("pnlForm"); } catch (Exception ex) { exception.HandleException("CalendarEventType:", MethodBase.GetCurrentMethod().Name, ex, Session["admin"]); Response.Redirect("/error", false); } } /// /// /// /// /// protected void lnkEdit_Click(object sender, EventArgs e) { try { oCalendarEventType eventType = new oCalendarEventType(); ArrayList list = new ArrayList(); if (sender.GetType() == typeof(LinkButton)) { int recId = int.Parse(((LinkButton)sender).CommandArgument); if (recId > 0) { //get cat list = xData.GetTypedByCriteriaSpecific("recId", typeof(oCalendarEventType), "recId", recId.ToString()); //enumerate list foreach (oCalendarEventType t in list) { //assign object eventType = t; //populate page form PopulateFormValues(eventType); Session["EventType"] = eventType; break; } TogglePanels("pnlForm"); } } } catch (Exception ex) { exception.HandleException("CalendarEventType:", MethodBase.GetCurrentMethod().Name, ex, Session["admin"]); Response.Redirect("/error", false); } } /// /// /// /// /// protected void lnkRemove_Click(object sender, EventArgs e) { try { if (sender.GetType() == typeof(LinkButton)) { int recId = int.Parse(((LinkButton)sender).CommandArgument); //first check if there are any events linked to this type ArrayList events = xData.GetTypedByCriteriaSpecific("recId", typeof(oCalendarEvent), "calendarEventTypeId", recId.ToString()); if (events != null && events.Count > 0) { pnlGridResult.Visible = true; lblGridResult.Text = "the selected Event Type has Events linked to it and cannot be deleted."; } //Delete event type else if (xData.DeleteTyped("recId", recId.ToString(), typeof(oCalendarEventType))) { //rebind pages grid BindGrid(); pnlResult.Visible = true; //display successful result lblResult.Text = "the selected Event Type was deleted successfully."; } } } catch (Exception ex) { exception.HandleException("CalendarEventType:", MethodBase.GetCurrentMethod().Name, ex, Session["admin"]); Response.Redirect("/error", false); } } /// /// /// /// /// protected void btnSave_Click(object sender, EventArgs e) { try { oCalendarEventType eventType = new oCalendarEventType(); if (utils.verifySession("EventType"))//update mode { eventType = (oCalendarEventType)Session["EventType"]; //save form values SaveFormValues(ref eventType); if (xData.UpdateTyped("recId", eventType.recId.ToString(), typeof(oCalendarEventType), eventType)) { Session["EventType"] = eventType; BindGrid(); pnlResult.Visible = true; lblResult.Text = "your changes were updated successfully."; } } else { if (!xData.VerifyExists("recId", typeof(oCalendarEventType), "name,calendarId", txtEventType.Text + "," + this.CalendarId)) { //save form values SaveFormValues(ref eventType); eventType.recId = xData.SaveTyped("recId", typeof(oCalendarEventType), eventType); if (eventType.recId > 0) { Session["EventType"] = eventType; BindGrid(); pnlResult.Visible = true; lblResult.Text = "your Event Type was created successfully."; } } else { pnlResult.Visible = true; lblResult.Text = "An Event Type with this name already exists on the system"; } } } catch (Exception ex) { exception.HandleException("CalendarEventType:", MethodBase.GetCurrentMethod().Name, ex, Session["admin"]); Response.Redirect("/error", false); } } /// /// /// /// /// protected void btnCancel_Click(object sender, EventArgs e) { try { utils.disposeSession("EventType"); BindGrid(); TogglePanels("pnlGrid"); } catch (Exception ex) { exception.HandleException("CalendarEventType:", MethodBase.GetCurrentMethod().Name, ex, Session["admin"]); Response.Redirect("/error", false); } } /// /// /// /// /// protected void ddColour_SelectedIndexChanged(object sender, EventArgs e) { try { //ddColour.CssClass = "form-control"; //ddColour.AddCssClass(ddColour.SelectedItem.Value); ddColour.Attributes.Add("style", "background-color:" + ddColour.SelectedItem.Value); } catch (Exception ex) { exception.HandleException("CalendarEventType:", MethodBase.GetCurrentMethod().Name, ex, Session["admin"]); Response.Redirect("/error", false); } } /// /// Item data bound /// /// /// protected void rptEventType_ItemDataBound(object sender, RepeaterItemEventArgs e) { try { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { HtmlControl tdColour = (HtmlControl)e.Item.FindControl("tdColour"); if (tdColour != null) { Label lblColour = (Label)tdColour.FindControl("lblColour"); if (lblColour != null) { tdColour.Style.Add("background-color", lblColour.Text); tdColour.Controls.Remove(lblColour); } } } } catch (Exception ex) { exception.HandleException("CalendarEventType:", MethodBase.GetCurrentMethod().Name, ex, Session["admin"]); Response.Redirect("/error", false); } } #endregion }