using System;
using System.Data;
using CMS.CMSHelper;
using CMS.EventLog;
using CMS.GlobalHelper;
using CMS.UIControls;
[Title(Text = "Event log", ImageUrl = "Objects/CMS_EventLog/object.png")]
public partial class CMSAPIExamples_Code_Administration_EventLog_Default : CMSAPIExamplePage
{
#region "Initialization"
protected void Page_Load(object sender, EventArgs e)
{
// Event log
apiLogEvent.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(LogEvent);
apiGetAndUpdateEvent.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(GetAndUpdateEvent);
apiGetAndBulkUpdateEvents.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(GetAndBulkUpdateEvents);
apiClearLog.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(ClearLog);
}
#endregion
#region "Mass actions"
///
/// Runs all creating and managing examples.
///
public override void RunAll()
{
base.RunAll();
// Event log
apiLogEvent.Run();
apiGetAndUpdateEvent.Run();
apiGetAndBulkUpdateEvents.Run();
}
///
/// Runs all cleanup examples.
///
public override void CleanUpAll()
{
base.CleanUpAll();
// Event log
apiClearLog.Run();
}
#endregion
#region "API examples - Event log"
///
/// Log event. Called when the "Log event" button is pressed.
///
private bool LogEvent()
{
// Create new event object
EventLogInfo newEvent = new EventLogInfo();
// Set the properties
newEvent.EventType = "I";
newEvent.EventDescription = "My new logged event.";
newEvent.EventCode = "APIEXAMPLE";
newEvent.EventTime = DateTime.Now;
newEvent.Source = "API Example";
newEvent.SiteID = CMSContext.CurrentSiteID;
// Create new instance of event log provider
EventLogProvider eventLog = new EventLogProvider();
// Log the event
eventLog.LogEvent(newEvent);
return true;
}
///
/// Gets and updates abuse report. Called when the "Get and update report" button is pressed.
/// Expects the LogEvent method to be run first.
///
private bool GetAndUpdateEvent()
{
// Create new instance of event log provider
EventLogProvider eventLog = new EventLogProvider();
// Get top 1 event matching the where condition
string where = "EventCode = 'APIEXAMPLE'";
int topN = 1;
DataSet events = eventLog.GetAllEvents(where, null, topN, null);
if (!DataHelper.DataSourceIsEmpty(events))
{
// Create the object from DataRow
EventLogInfo updateEvent = new EventLogInfo(events.Tables[0].Rows[0]);
// Update the properties
updateEvent.EventDescription = updateEvent.EventDescription.ToLower();
// Save the changes
eventLog.SetEventLogInfo(updateEvent);
return true;
}
return false;
}
///
/// Gets and bulk updates eventss. Called when the "Get and bulk update events" button is pressed.
/// Expects the LogEvent method to be run first.
///
private bool GetAndBulkUpdateEvents()
{
// Create new instance of event log provider
EventLogProvider eventLog = new EventLogProvider();
// Get events matching the where condition
string where = "EventCode = 'APIEXAMPLE'";
DataSet events = eventLog.GetAllEvents(where, null);
if (!DataHelper.DataSourceIsEmpty(events))
{
// Loop through the individual items
foreach (DataRow eventDr in events.Tables[0].Rows)
{
// Create the object from DataRow
EventLogInfo updateEvent = new EventLogInfo(eventDr);
// Update the properties
updateEvent.EventDescription = updateEvent.EventDescription.ToUpper();
// Save the changes
eventLog.SetEventLogInfo(updateEvent);
}
return true;
}
return false;
}
///
/// Clears event log for current site. Called when the "Clear event log" button is pressed.
/// Expects the CreateAbuseReport method to be run first.
///
private bool ClearLog()
{
// Create new instance of event log provider
EventLogProvider eventLog = new EventLogProvider();
// Clear event log for current site
eventLog.ClearEventLog(CMSContext.CurrentUser.UserID, CMSContext.CurrentUser.UserName, HTTPHelper.UserHostAddress, CMSContext.CurrentSiteID);
return true;
}
#endregion
}