📄 activityutility.cs
字号:
namespace ASPNET.StarterKit.Communities {
using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
//*********************************************************************
//
// ActivityUtility Class
//
// Contains static methods for adding and displaying entries to the
// community activity log.
//
//*********************************************************************
public class ActivityUtility {
//*********************************************************************
//
// ClearEntries Method
//
// Clears all entries from the Activity log for a community.
//
//*********************************************************************
public static void ClearEntries() {
SqlConnection conPortal = new SqlConnection( CommunityGlobals.ConnectionString );
SqlCommand cmd = new SqlCommand( "Community_ActivityClearEntries", conPortal );
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@communityID", CommunityGlobals.CommunityID);
conPortal.Open();
cmd.ExecuteNonQuery();
conPortal.Close();
}
//*********************************************************************
//
// RecordMessage Method
//
// Adds a new activity entry. Call this method from within HttpContext.
//
//*********************************************************************
public static void RecordMessage
(
string briefEntry,
string fullEntry
) {
// Get section ID
int sectionID = -1;
SectionInfo objSectionInfo = (SectionInfo)HttpContext.Current.Items["SectionInfo"];
if (objSectionInfo != null)
sectionID = objSectionInfo.ID;
// Record to database
RecordActivityDB
(
CommunityGlobals.CommunityID,
briefEntry,
fullEntry,
sectionID,
HttpContext.Current.Request.RawUrl
);
}
//*********************************************************************
//
// RecordMessage Method
//
// Adds a new activity entry. Call this method outside HTTPContext.
//
//*********************************************************************
public static void RecordMessage
(
int communityID,
string briefEntry,
string fullEntry
) {
// Record to database
RecordActivityDB
(
communityID,
briefEntry,
fullEntry,
-1,
String.Empty
);
}
//*********************************************************************
//
// RecordError Method
//
// Adds a new activity error. Call this method inside HTTPContext.
//
//*********************************************************************
public static void RecordError
(
string briefEntry,
Exception exception
) {
// Build error message
string fullEntry = String.Format("Exception:\n{0}\n\nStack Trace:\n", exception.Message, exception.StackTrace);
// Get section ID
int sectionID = -1;
SectionInfo objSectionInfo = (SectionInfo)HttpContext.Current.Items["SectionInfo"];
if (objSectionInfo != null)
sectionID = objSectionInfo.ID;
// Record to database
RecordActivityDB
(
CommunityGlobals.CommunityID,
briefEntry,
fullEntry,
sectionID,
HttpContext.Current.Request.RawUrl
);
}
//*********************************************************************
//
// RecordError Method
//
// Adds a new activity error. Call this method outside HTTPContext.
//
//*********************************************************************
public static void RecordError
(
int communityID,
string briefEntry,
Exception exception
) {
// Build error message
string fullEntry = String.Format("Exception:\n{0}\n\nStack Trace:\n", exception.Message, exception.StackTrace);
// Record to database
RecordActivityDB
(
communityID,
briefEntry,
fullEntry,
-1,
String.Empty
);
}
//*********************************************************************
//
// RecordActivityDB Method
//
// Adds a new activity entry to the DB.
//
//*********************************************************************
private static void RecordActivityDB
(
int communityID,
string briefEntry,
string fullEntry,
int sectionID,
string url
) {
SqlConnection conPortal = new SqlConnection( CommunityGlobals.ConnectionString );
SqlCommand cmd = new SqlCommand( "Community_ActivityRecordEntry", conPortal );
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add( "@communityID", communityID);
cmd.Parameters.Add( "@briefEntry", briefEntry);
cmd.Parameters.Add( "@fullEntry", fullEntry);
cmd.Parameters.Add( "@sectionID", sectionID );
cmd.Parameters.Add( "@url", url );
conPortal.Open();
cmd.ExecuteNonQuery();
conPortal.Close();
}
//*********************************************************************
//
// GetEntries Method
//
// Gets the last fifty activity entries from the database.
//
//*********************************************************************
public static ArrayList GetEntries() {
ArrayList colEntries = new ArrayList();
SqlConnection conPortal = new SqlConnection( CommunityGlobals.ConnectionString );
SqlCommand cmdGet = new SqlCommand( "Community_ActivityGetEntries", conPortal );
cmdGet.CommandType = CommandType.StoredProcedure;
cmdGet.Parameters.Add( "@communityID", CommunityGlobals.CommunityID);
conPortal.Open();
SqlDataReader dr = cmdGet.ExecuteReader();
while (dr.Read())
colEntries.Add(PopulateActivityInfoFromSqlDataReader(dr));
conPortal.Close();
return colEntries;
}
//*********************************************************************
//
// GetActivityInfo Method
//
// Gets information about a single error from the database.
//
//*********************************************************************
public static ActivityInfo GetActivityInfo(int entryID) {
ActivityInfo _activityInfo = null;
SqlConnection conPortal = new SqlConnection( CommunityGlobals.ConnectionString );
SqlCommand cmdGet = new SqlCommand( "Community_ActivityGetEntry", conPortal );
cmdGet.CommandType = CommandType.StoredProcedure;
cmdGet.Parameters.Add( "@communityID", CommunityGlobals.CommunityID);
cmdGet.Parameters.Add( "@entryID", entryID);
conPortal.Open();
SqlDataReader dr = cmdGet.ExecuteReader();
if (dr.Read())
_activityInfo = PopulateActivityInfoFromSqlDataReader(dr);
conPortal.Close();
return _activityInfo;
}
//*********************************************************************
//
// PopulateActivityInfoFromSqlDataReader Property
//
// Creates an ActivityInfo object from a SqlDataReader.
//
//*********************************************************************
private static ActivityInfo PopulateActivityInfoFromSqlDataReader(SqlDataReader dr) {
ActivityInfo _activityInfo = new ActivityInfo();
_activityInfo.ID = (int)dr["activity_id"];
_activityInfo.DateCreated = (DateTime)dr["activity_dateCreated"];
_activityInfo.BriefEntry = (string)dr["activity_briefEntry"];
_activityInfo.FullEntry = (string)dr["activity_fullEntry"];
_activityInfo.Url = (string)dr["activity_url"];
if (dr["section_name"] != DBNull.Value)
_activityInfo.SectionName = (string)dr["section_name"];
return _activityInfo;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -