using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using CMS.CMSHelper; using CMS.EventManager; using CMS.ExtendedControls; using CMS.GlobalHelper; using CMS.DocumentEngine; using CMS.UIControls; using TreeNode = CMS.DocumentEngine.TreeNode; public partial class CMSModules_EventManager_Controls_EventAttendees_Edit : CMSAdminControl { #region "Variables" private int mEventID = 0; protected int mAttendeeID = 0; private bool mSaved = false; private bool mUsePostBack = false; private int mNewItemID = 0; private bool error = false; #endregion #region "Properties" /// /// Attendees' EventID. /// public int EventID { get { return mEventID; } set { mEventID = value; } } /// /// Saved. /// public bool Saved { get { return mSaved; } set { mSaved = value; } } /// /// Attendee ID. /// public int AttendeeID { get { return mAttendeeID; } set { mAttendeeID = value; } } /// /// If true don't use redirect. /// public bool UsePostBack { get { return mUsePostBack; } set { mUsePostBack = value; } } /// /// After new item is created this stores its ID. /// public int NewItemID { get { return mNewItemID; } set { mNewItemID = value; } } /// /// Messages placeholder /// public override MessagesPlaceHolder MessagesPlaceHolder { get { return plcMess; } } #endregion #region "Methods" protected void Page_Load(object sender, EventArgs e) { ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "RefreshHeader", ScriptHelper.GetScript("function RefreshHeader(attendeeId, duplicit) {if (parent.frames['eventsHeader']) { " + "parent.frames['eventsHeader'].location.replace(parent.frames['eventsHeader'].location);location.replace(location + '&attendeeId=' + attendeeId +'&saved=1&duplicit=' + duplicit); }} \n")); lblFirstName.Text = GetString("Event_Attendee_Edit.lblFirstName"); lblLastName.Text = GetString("Event_Attendee_Edit.lblLastName"); lblPhone.Text = GetString("Event_Attendee_Edit.lblPhone"); rfvEmail.Text = GetString("Event_Attendee_Edit.rfvEmail"); if (Saved) { ShowChangesSaved(); } } /// /// Checks if current event (EventID) exist and hides control content if not. /// Returns true if event exist, false otherwise. /// private bool CheckIfEventExists() { TreeProvider tree = new TreeProvider(CMSContext.CurrentUser); TreeNode nd = tree.SelectSingleNode(EventID, CMSContext.PreferredCultureCode, tree.CombineWithDefaultCulture, false); if (nd == null) { ShowError(GetString("editedobject.notexists")); pnlContent.Visible = false; return false; } return true; } /// /// Loads data for edit form. /// public void LoadEditData() { // Check if current event exist if (!CheckIfEventExists()) { return; } EventAttendeeInfo eai = null; if (AttendeeID > 0) { eai = EventAttendeeInfoProvider.GetEventAttendeeInfo(AttendeeID); } if (!error) { if (eai != null) { txtFirstName.Text = eai.AttendeeFirstName; txtLastName.Text = eai.AttendeeLastName; txtEmail.Text = eai.AttendeeEmail; txtPhone.Text = eai.AttendeePhone; // Show warning if duplicit email was used if ((QueryHelper.GetBoolean("duplicit", false)) || (ValidationHelper.GetBoolean(hdnDuplicit.Value, false))) { hdnDuplicit.Value = "false"; ShowWarning(GetString("eventmanager.attendeeregisteredwarning"), null, null); } } else { txtFirstName.Text = String.Empty; txtLastName.Text = String.Empty; txtEmail.Text = String.Empty; txtPhone.Text = String.Empty; } } } protected void btnOK_Click(object sender, EventArgs e) { // Check if current event exist if (!CheckIfEventExists()) { return; } // Check 'Modify' permission if (!CheckPermissions("cms.eventmanager", "Modify")) { return; } txtEmail.Text = txtEmail.Text.Trim(); // Validate fields string errorMessage = new Validator() .NotEmpty(txtEmail.Text, rfvEmail.ErrorMessage) .IsEmail(txtEmail.Text, GetString("Event_Attendee_Edit.IncorectEmailFormat")) .Result; // Update database if (errorMessage == "") { // Indicates new attendee bool isNew = false; // Indicates duplicit attendee/email bool isDuplicit = false; EventAttendeeInfo eai = null; if (AttendeeID == 0) { eai = new EventAttendeeInfo(); eai.AttendeeEventNodeID = EventID; isNew = true; isDuplicit = EventAttendeeInfoProvider.GetEventAttendeeInfo(EventID, txtEmail.Text) != null; } else { eai = EventAttendeeInfoProvider.GetEventAttendeeInfo(AttendeeID); } if (eai != null) { eai.AttendeeFirstName = txtFirstName.Text; eai.AttendeeLastName = txtLastName.Text; eai.AttendeeEmail = txtEmail.Text; eai.AttendeePhone = txtPhone.Text; EventAttendeeInfoProvider.SetEventAttendeeInfo(eai); if (!UsePostBack) { if (!isNew) { URLHelper.Redirect("Events_Attendee_Edit.aspx?eventid=" + Convert.ToString(EventID) + "&attendeeId=" + Convert.ToString(eai.AttendeeID) + "&saved=true"); } else { ltlScript.Text = ScriptHelper.GetScript("RefreshHeader(" + Convert.ToString(eai.AttendeeID) + ", " + (isDuplicit ? "1" : "0") + ");"); } } ShowChangesSaved(); hdnDuplicit.Value = isDuplicit.ToString(); // If new item store new attendeeID .. used in postback situations if (isNew) { NewItemID = eai.AttendeeID; } } else { errorMessage = GetString("general.invalidid"); } } if (!String.IsNullOrEmpty(errorMessage)) { ShowError(errorMessage); } } public override void ShowError(string text) { error = true; base.ShowError(text); } #endregion }