📄 commondataprovider.cs
字号:
post.PostLevel = Convert.ToInt32(dr["PostLevel"]);
post.SortOrder = Convert.ToInt32(dr["SortOrder"]);
post.Subject = Convert.ToString(dr["Subject"]).Trim();
post.ThreadDate = Convert.ToDateTime(dr["ThreadDate"]);
post.ThreadID = Convert.ToInt32(dr["ThreadID"]);
post.Replies = Convert.ToInt32(dr["Replies"]);
post.Username = Convert.ToString(dr["Username"]).Trim();
post.IsApproved = Convert.ToBoolean(dr["IsApproved"]);
post.IsLocked = Convert.ToBoolean(dr["IsLocked"]);
post.Views = Convert.ToInt32(dr["TotalViews"]);
post.HasRead = Convert.ToBoolean(dr["HasRead"]);
post.UserHostAddress = (string) dr["IPAddress"];
post.PostType = (PostType) dr["PostType"];
post.EmoticonID = (int) dr["EmoticonID"];
post.PostConfiguration = (int) dr["PostConfiguration"];
}
public static void PopulatePostFromIDataReader(IDataReader dr, Post post) {
// Populate Post
//
post.PostID = Convert.ToInt32(dr["PostID"]);
post.ParentID = Convert.ToInt32(dr["ParentID"]);
post.FormattedBody = Convert.ToString(dr["FormattedBody"]).Trim();
post.Body = Convert.ToString(dr["Body"]).Trim();
post.SectionID = Convert.ToInt32(dr["SectionID"]);
post.PostDate = Convert.ToDateTime(dr["PostDate"]);
post.PostLevel = Convert.ToInt32(dr["PostLevel"]);
post.SortOrder = Convert.ToInt32(dr["SortOrder"]);
post.Subject = Convert.ToString(dr["Subject"]).Trim();
post.ThreadDate = Convert.ToDateTime(dr["ThreadDate"]);
post.ThreadID = Convert.ToInt32(dr["ThreadID"]);
post.Replies = Convert.ToInt32(dr["Replies"]);
// 修改为显示昵称
post.Username = Convert.ToString(dr["Nickname"]).Trim();
if (post.Username == "")
post.Username = Convert.ToString(dr["Username"]).Trim();
post.IsApproved = Convert.ToBoolean(dr["IsApproved"]);
post.AttachmentFilename = dr["AttachmentFilename"] as string;
post.IsLocked = Convert.ToBoolean(dr["IsLocked"]);
post.Views = Convert.ToInt32(dr["TotalViews"]);
post.HasRead = Convert.ToBoolean(dr["HasRead"]);
post.UserHostAddress = (string) dr["IPAddress"];
post.PostType = (PostType) dr["PostType"];
post.EmoticonID = (int) dr["EmoticonID"];
post.PostConfiguration = (int) dr["PostConfiguration"];
//post.DeserializeExtendedAttributes(dr["StringNameValues"] as byte[]);
SerializerData data = PopulateSerializerDataIDataReader(dr, SerializationType.Post);
post.SetSerializerData(data);
try {
post.IsTracked = (bool) dr["UserIsTrackingThread"];
} catch {}
try {
post.EditNotes = dr["EditNotes"] as string;
} catch {}
try {
post.ThreadIDNext = (int) dr["NextThreadID"];
post.ThreadIDPrev = (int) dr["PrevThreadID"];
} catch {}
// Populate User
//
post.User = cs_PopulateUserFromIDataReader(dr);
}
#endregion
/// <summary>
/// Builds and returns an instance of the Forum class based on the current row of an
/// aptly populated IDataReader object.
/// </summary>
/// <param name="dr">The IDataReader object that contains, at minimum, the following
/// columns: ForumID, DateCreated, Description, Name, Moderated, and DaysToView.</param>
/// <returns>An instance of the Forum class that represents the current row of the passed
/// in SqlDataReader, dr.</returns>
public static void PopulateSectionFromIDataReader(IDataReader dr, Section s)
{
s.SectionID = (int) dr["SectionID"];
s.ParentID = (int) dr["ParentID"];
s.SettingsID = (int) dr["SettingsID"];
s.GroupID = (int) dr["GroupID"];
s.DateCreated = (DateTime) dr["DateCreated"];
s.Description = (string) dr["Description"];
s.Name = (string) dr["Name"];
s.NewsgroupName = (string) dr["NewsgroupName"];
s.IsModerated = Convert.ToBoolean(dr["IsModerated"]);
s.DefaultThreadDateFilter = (ThreadDateFilterMode) dr["DaysToView"];
s.IsActive = Convert.ToBoolean(dr["IsActive"]);
s.IsSearchable = Convert.ToBoolean(dr["IsSearchable"]);
s.SortOrder = (int) dr["SortOrder"];
s.DisplayMask = (byte[]) dr["DisplayMask"];
s.TotalPosts = (int) dr["TotalPosts"];
s.TotalThreads = (int) dr["TotalThreads"];
s.GroupID = (int) dr["GroupID"];
s.MostRecentPostAuthor = dr["MostRecentPostAuthor"] as string;
s.MostRecentPostSubject = dr["MostRecentPostSubject"] as string;
s.MostRecentPostAuthorID = (int) dr["MostRecentPostAuthorID"];
s.MostRecentPostID = (int) dr["MostRecentPostId"];
s.MostRecentThreadID = (int) dr["MostRecentThreadId"];
s.MostRecentThreadReplies = (int) dr["MostRecentThreadReplies"];
s.MostRecentPostDate = (DateTime) dr["MostRecentPostDate"];
s.EnableAutoDelete = Convert.ToBoolean(dr["EnableAutoDelete"]);
s.EnablePostStatistics = Convert.ToBoolean(dr["EnablePostStatistics"]);
s.AutoDeleteThreshold = (int) dr["AutoDeleteThreshold"];
s.EnableAnonymousPosting = Convert.ToBoolean(dr["EnableAnonymousPosting"]);
s.ForumType = (ForumType) dr["ForumType"];
s.NavigateUrl = (string) dr["Url"];
s.ApplicationKey = dr["ApplicationKey"] as string;
//s.DeserializeExtendedAttributes(dr["StringNameValues"] as byte[]);
s.SetSerializerData(PopulateSerializerDataIDataReader(dr, SerializationType.Section));
s.ApplicationType = (ApplicationType) (Int16)dr["ApplicationType"];
try {
s.PostsToModerate = (int) dr["PostsToModerate"];
} catch {}
//return forum;
}
public static MembershipUser PopulateMembershipUserFromIDataReader(IDataReader dr, string userName)
{
string _name = userName == null ? dr["UserName"] as string : userName;
string email = dr["Email"] as string;
string passwordQuestion = dr["PasswordQuestion"] as string;
string comment = dr["Comment"] as string;
bool isApproved = Convert.ToBoolean(dr["IsApproved"]);
bool isLockedOut = Convert.ToBoolean(dr["IsLockedOut"]);
DateTime dtCreate = Convert.ToDateTime(dr["CreateDate"]);
DateTime dtLastLogin = Convert.ToDateTime(dr["LastLoginDate"]);
DateTime dtLastActivity = Convert.ToDateTime(dr["LastActivityDate"]);
DateTime dtLastPassChange = Convert.ToDateTime(dr["LastPasswordChangedDate"]);
DateTime dtLastLockoutDate = Convert.ToDateTime(dr["LastLockoutDate"]);
Guid userId = (Guid)dr["UserId"];
return new MembershipUser(Membership.Provider,_name,userId,email,passwordQuestion,comment,isApproved,isLockedOut,dtCreate,dtLastLogin,dtLastActivity,dtLastPassChange,dtLastLockoutDate);
}
//we can rename this once we make all of our changes.
public static User cs_PopulateUserFromIDataReader(IDataReader dr)
{
MembershipUser mu = PopulateMembershipUserFromIDataReader(dr,null);
return PopulateUserFromIDataReader(dr,mu,false);
}
public static User cs_PopulateUserFromIDataReader(IDataReader dr, bool isEditable)
{
MembershipUser mu = PopulateMembershipUserFromIDataReader(dr,null);
return PopulateUserFromIDataReader(dr,mu,isEditable);
}
public static User PopulateUserFromIDataReader(IDataReader dr, MembershipUser member, bool isEditable) {
Profile profile = null;
if (isEditable) {
ProfileBase pb = ProfileBase.Create(member.UserName,true);
profile = new Profile(pb);
}
else {
ProfileData pd = PopulateProfileDataFromIReader(dr);
profile = new Profile(pd);
}
// Read in the result set
User user = new User(member,profile);
user.UserID = (int) dr["cs_UserID"];
//Need to remove/remap this value
user.LastActivity = member.LastActivityDate;
user.AccountStatus = (UserAccountStatus) int.Parse( dr["cs_UserAccountStatus"].ToString() );
user.IsAnonymous = Convert.ToBoolean(dr["IsAnonymous"]);
user.LastAction = dr["cs_LastAction"] as string;
user.AppUserToken = dr["cs_AppUserToken"] as string;
user.ForceLogin = Convert.ToBoolean(dr["cs_ForceLogin"]);
// 2005-02-27: 对用户新增属性的转化
user.Nickname = (string) dr["Nickname"];
user.IPCreated = (string) dr["IPCreated"];
user.IPLastActivity = (string) dr["IPLastActivity"];
if (dr["Birthday"] != DBNull.Value)
user.Birthday = (DateTime) dr["Birthday"];
user.DatabaseQuota = (int) dr["DatabaseQuota"];
user.DatabaseQuotaUsed = (int) dr["DatabaseQuotaUsed"];
SerializerData data = CommonDataProvider.PopulateSerializerDataIDataReader(dr, SerializationType.User);
user.SetSerializerData(data);
user.IsAvatarApproved = Convert.ToBoolean(dr["IsAvatarApproved"]);
user.ModerationLevel = (ModerationLevel) int.Parse( dr["ModerationLevel"].ToString());
user.EnableThreadTracking = Convert.ToBoolean(dr["EnableThreadTracking"]);
user.TotalPosts = (int) dr["TotalPosts"];
user.EnableAvatar = Convert.ToBoolean(dr["EnableAvatar"]);
user.PostSortOrder = (SortOrder) dr["PostSortOrder"];
user.PostRank = (byte[]) dr["PostRank"];
user.EnableDisplayInMemberList = Convert.ToBoolean(dr["EnableDisplayInMemberList"]);
user.EnableOnlineStatus = Convert.ToBoolean(dr["EnableOnlineStatus"]);
user.EnablePrivateMessages = Convert.ToBoolean(dr["EnablePrivateMessages"]);
user.EnableHtmlEmail = Convert.ToBoolean(dr["EnableHtmlEmail"]);
// Moderation counters
//
user.AuditCounters = CommonDataProvider.PopulateAuditSummaryFromIDataReader( dr );
return user;
}
public static ProfileData PopulateProfileDataFromIReader(IDataReader reader)
{
ProfileData pd = new ProfileData();
pd.PropertyNames = reader["ProfileNames"] as string;
pd.PropertyValues = reader["PropertyValuesString"] as string;
pd.PropertyValuesBinary = reader["PropertyValuesBinary"] as byte[];
return pd;
}
public static Avatar PopulateAvatarFromIReader (IDataReader reader) {
Avatar avatar = new Avatar();
avatar.ImageID = (int) reader["ImageID"];
avatar.UserID = (int) reader["UserID"];
avatar.Content = (byte[]) reader["Content"];
avatar.ContentType = (string) reader["ContentType"];
avatar.Length = (int) reader["Length"];
// 新增Filename
avatar.FileName = (string) reader["FileName"];
avatar.DateCreated = (DateTime) reader["DateLastUpdated"];
return avatar;
}
public static PostAttachment PopulatePostAttachmentFromIReader (IDataReader reader) {
PostAttachment attachment = new PostAttachment();
attachment.AttachmentID = (Guid) reader["AttachmentID"];
attachment.PostID = (int) reader["PostID"];
attachment.Content = (byte[]) reader["Content"];
attachment.ContentType = (string) reader["ContentType"];
attachment.Length = (int) reader["ContentSize"];
attachment.FileName = (string) reader["FileName"];
attachment.RealFileName = (string) reader["RealFileName"];
attachment.UserID = (int) reader["UserID"];
attachment.ForumID = (int) reader["SectionID"];
attachment.DownloadCount = (int) reader["DownloadCount"];
attachment.DateCreated = (DateTime) reader["Created"];
return attachment;
}
public static Role PopulateRoleFromIDataReader (IDataReader reader) {
Role role = new Role();
role.RoleID = (Guid) reader["RoleID"];
role.Name = (string) reader["Name"];
role.Description = reader["Description"] as string;
return role;
}
public static SerializerData PopulateSerializerDataIDataReader(IDataReader dr, SerializationType type)
{
SerializerData data = new SerializerData();
switch(type)
{
case SerializationType.Post:
//data.Bytes = dr["PostStringNameValues"] as byte[];
data.Keys = dr["PostPropertyNames"] as string;
data.Values = dr["PostPropertyValues"] as string;
break;
case SerializationType.Section:
//data.Bytes = dr["SectionStringNameValues"] as byte[];
data.Keys = dr["SectionPropertyNames"] as string;
data.Values = dr["SectionPropertyValues"] as string;
break;
case SerializationType.User:
//data.Bytes = dr["UserStringNameValues"] as byte[];
data.Keys = dr["UserPropertyNames"] as string;
data.Values = dr["UserPropertyValues"] as string;
break;
default:
//data.Bytes = dr["StringNameValues"] as byte[];
data.Keys = dr["PropertyNames"] as string;
data.Values = dr["PropertyValues"] as string;
break;
}
return data;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -