⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 commondataprovider.cs

📁 本系统是在asp版《在线文件管理器》的基础上设计制作
💻 CS
📖 第 1 页 / 共 3 页
字号:
			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 + -