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
}