using System;
using System.Data;
using System.Web;
using System.Collections;
using CMS.EventLog;
using CMS.GlobalHelper;
using CMS.SiteProvider;
using CMS.UIControls;
using CMS.SettingsProvider;
[Title("Objects/CMS_EventLog/detail.png", "EventLogDetails.Header", "event_log_detail")]
public partial class CMSModules_EventLog_EventLog_Details : CMSEventLogPage
{
#region "Protected variables"
protected int eventId = 0;
protected int prevId = 0;
protected int nextId = 0;
protected EventLogProvider eventProvider = new EventLogProvider();
protected Hashtable mParameters = null;
#endregion
#region "Properties"
///
/// Hashtable containing dialog parameters.
///
private Hashtable Parameters
{
get
{
if (mParameters == null)
{
string identifier = QueryHelper.GetString("params", null);
mParameters = (Hashtable)WindowHelper.GetItem(identifier);
}
return mParameters;
}
}
#endregion
#region "Page events"
protected void Page_Load(object sender, EventArgs e)
{
if (QueryHelper.ValidateHash("hash", "eventid") && (Parameters != null))
{
CheckPermissions(true);
// Get the ORDER BY column and starting event ID
string orderBy = ValidationHelper.GetString(Parameters["orderby"], "EventID DESC");
if ((orderBy == string.Empty) || (orderBy.IndexOfCSafe(';') >= 0))
{
orderBy = "EventID DESC"; // ORDER BY with semicolon is considered to be dangerous
}
string whereCondition = ValidationHelper.GetString(Parameters["where"], string.Empty);
eventId = QueryHelper.GetInteger("eventid", 0);
if (!RequestHelper.IsPostBack())
{
// Get EventID value
LoadData();
}
lnkExport.Visible = true;
lnkExport.Text = GetString("EventLogDetails.Export");
lnkExport.NavigateUrl = ResolveUrl("GetEventDetail.aspx?eventid=" + eventId);
if (SiteID > 0)
{
lnkExport.NavigateUrl = URLHelper.AddParameterToUrl(lnkExport.NavigateUrl, "siteid", SiteID.ToString());
}
lnkExport.Target = "_blank";
// Initialize next/previous buttons
int[] prevNext = eventProvider.GetPreviousNext(eventId, whereCondition, orderBy);
if (prevNext != null)
{
prevId = prevNext[0];
nextId = prevNext[1];
btnPrevious.Enabled = (prevId != 0);
btnNext.Enabled = (nextId != 0);
btnPrevious.Click += btnPrevious_Click;
btnNext.Click += btnNext_Click;
}
// Set button caption
btnNext.Text = GetString("general.next") + " >";
btnPrevious.Text = "< " + GetString("general.back");
RegisterModalPageScripts();
RegisterEscScript();
}
}
#endregion
#region "Button handling"
protected void btnPrevious_Click(object sender, EventArgs e)
{
// Redirect to previous
URLHelper.Redirect(URLHelper.UpdateParameterInUrl(URLHelper.CurrentURL, "eventId", string.Empty + prevId));
}
protected void btnNext_Click(object sender, EventArgs e)
{
// Redirect to next
URLHelper.Redirect(URLHelper.UpdateParameterInUrl(URLHelper.CurrentURL, "eventId", string.Empty + nextId));
}
#endregion
#region "Protected methods"
///
/// Loads data of specific EventLog from DB.
///
protected void LoadData()
{
EventLogInfo ev = EventLogProvider.GetEventLogInfo(eventId);
//Set edited object
EditedObject = ev;
if (ev != null)
{
string eventType = ValidationHelper.GetString(ev.GetValue("EventType"), string.Empty);
// Rewrite event type text.
lblEventTypeValue.Text = EventLogHelper.GetEventTypeText(eventType);
lblEventIDValue.Text = ValidationHelper.GetString(ev.GetValue("EventID"), string.Empty);
lblEventTimeValue.Text = ValidationHelper.GetString(ev.GetValue("EventTime"), string.Empty);
lblSourceValue.Text = HTMLHelper.HTMLEncode(ValidationHelper.GetString(ev.GetValue("Source"), string.Empty));
lblEventCodeValue.Text = HTMLHelper.HTMLEncode(ValidationHelper.GetString(ev.GetValue("EventCode"), string.Empty));
lblUserIDValue.Text = ValidationHelper.GetString(ev.GetValue("UserID"), string.Empty);
plcUserID.Visible = (lblUserIDValue.Text != string.Empty);
lblUserNameValue.Text = HTMLHelper.HTMLEncode(Functions.GetFormattedUserName(ValidationHelper.GetString(ev.GetValue("UserName"), string.Empty)));
plcUserName.Visible = (lblUserNameValue.Text != string.Empty);
lblIPAddressValue.Text = ValidationHelper.GetString(ev.GetValue("IPAddress"), string.Empty);
lblNodeIDValue.Text = ValidationHelper.GetString(ev.GetValue("NodeID"), string.Empty);
plcNodeID.Visible = (lblNodeIDValue.Text != string.Empty);
lblNodeNameValue.Text = HTMLHelper.HTMLEncode(ValidationHelper.GetString(ev.GetValue("DocumentName"), string.Empty));
plcNodeName.Visible = (lblNodeNameValue.Text != string.Empty);
string description = HTMLHelper.StripTags(ValidationHelper.GetString(ev.GetValue("EventDescription"), string.Empty).Replace("
", "\r\n").Replace("
", "\r\n"));
lblEventDescriptionValue.Text = HTMLHelper.EnsureLineEnding(HTMLHelper.HTMLEncode(description), "
");
if (!DataHelper.IsEmpty(ev.GetValue("SiteID")))
{
SiteInfo si = SiteInfoProvider.GetSiteInfo(Convert.ToInt32(ev.GetValue("SiteID")));
if (si != null)
{
lblSiteNameValue.Text = HTMLHelper.HTMLEncode(si.DisplayName);
}
}
else
{
plcSite.Visible = false;
}
lblMachineNameValue.Text = HTMLHelper.HTMLEncode(ValidationHelper.GetString(ev.GetValue("EventMachineName"), string.Empty));
lblEventUrlValue.Text = HTMLHelper.HTMLEncode(ValidationHelper.GetString(ev.GetValue("EventUrl"), string.Empty));
lblUrlReferrerValue.Text = HTMLHelper.HTMLEncode(ValidationHelper.GetString(ev.GetValue("EventUrlReferrer"), string.Empty));
lblUserAgentValue.Text = HTMLHelper.HTMLEncode(ValidationHelper.GetString(ev.GetValue("EventUserAgent"), string.Empty));
}
}
#endregion
}