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

📄 discussutility.cs

📁 一个ASP.NET下的中文内容管理和社区系统
💻 CS
字号:
namespace ASPNET.StarterKit.Communities.Discuss {
    using System;
    using System.Collections;
    using System.Data;
    using System.Data.SqlClient;



    //*********************************************************************
    //
    // DiscussUtility Class
    //
    // Contains static methods for working with threads and posts in the
    // discuss module. 
    //
    //*********************************************************************

    public class DiscussUtility {


        //*********************************************************************
        //
        // AddPost Method
        //
        // Adds a new post to the database. 
        //
        //*********************************************************************

        public static int AddPost
        (
            string username, 
            int sectionID, 
            int topicID,
            string title, 
            int moderationStatus,
            bool isPinned,
            bool isAnnouncement,
            bool isLocked,
            string bodyText
        ) {
            // Create brief description
            string briefDescription = CommunityGlobals.TruncateWithEllipsis(CommunityGlobals.StripTags(bodyText), 500);
        
            SqlConnection conPortal = new SqlConnection(CommunityGlobals.ConnectionString);
            SqlCommand cmdAdd = new SqlCommand( "Community_DiscussAddPost", conPortal);
            cmdAdd.CommandType = CommandType.StoredProcedure;
            
            cmdAdd.Parameters.Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;
            cmdAdd.Parameters.Add("@communityID", CommunityGlobals.CommunityID);
            cmdAdd.Parameters.Add("@sectionID", sectionID);
            cmdAdd.Parameters.Add("@username", username);
            cmdAdd.Parameters.Add("@topicID", topicID);
            cmdAdd.Parameters.Add("@title", title);
            cmdAdd.Parameters.Add("@briefDescription", briefDescription);
            cmdAdd.Parameters.Add("@metaDescription", ContentPageUtility.CalculateMetaDescription(briefDescription));
            cmdAdd.Parameters.Add("@metaKeys", ContentPageUtility.CalculateMetaKeys(briefDescription));
            cmdAdd.Parameters.Add("@moderationStatus", moderationStatus );
            cmdAdd.Parameters.Add("@isPinned", isPinned);
            cmdAdd.Parameters.Add("@isAnnouncement", isAnnouncement);
            cmdAdd.Parameters.Add("@isLocked", isLocked);
			cmdAdd.Parameters.Add("@bodyText", SqlDbType.NText);
			cmdAdd.Parameters[ "@bodyText" ].Value = bodyText;
            
            conPortal.Open();
            cmdAdd.ExecuteNonQuery();
            int result = (int)cmdAdd.Parameters["@RETURN_VALUE"].Value;

            // Add Search Keys
            SearchUtility.AddSearchKeys(conPortal, sectionID, result, title, briefDescription);

            conPortal.Close();
            
            return result;
          }


        //*********************************************************************
        //
        // AddPostReply Method
        //
        // Adds a new comment to the database. 
        //
        //*********************************************************************

        public static int AddPostReply
        (
            int contentPageID, 
            ModerationStatus moderationStatus, 
            string username, 
            string title, 
            string body
        ) {
            SqlConnection conPortal = new SqlConnection(CommunityGlobals.ConnectionString);
            SqlCommand cmdAdd = new SqlCommand("Community_DiscussAddReply", conPortal);
            cmdAdd.CommandType = CommandType.StoredProcedure;
            
            // Add Parameters
            cmdAdd.Parameters.Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;
            cmdAdd.Parameters.Add("@communityID", CommunityGlobals.CommunityID);
            cmdAdd.Parameters.Add("@contentPageID", contentPageID);
            cmdAdd.Parameters.Add("@moderationStatus", moderationStatus);
            cmdAdd.Parameters.Add("@username", username);
            cmdAdd.Parameters.Add("@title", title);
            cmdAdd.Parameters.Add("@metaDescription", ContentPageUtility.CalculateMetaDescription(body));
            cmdAdd.Parameters.Add("@metaKeys", ContentPageUtility.CalculateMetaKeys(body));
			cmdAdd.Parameters.Add("@body", SqlDbType.NText);
			cmdAdd.Parameters[ "@body" ].Value = body;
           

            conPortal.Open();
            cmdAdd.ExecuteNonQuery();
            int result = (int)cmdAdd.Parameters["@RETURN_VALUE"].Value;
            conPortal.Close();
            
            return result;
        }





        //*********************************************************************
        //
        // EditPost Method
        //
        // Edits an existing post in the database. 
        //
        //*********************************************************************

        public static void EditPost
        (
            int contentPageID,
            string username, 
            int sectionID, 
            int topicID,
            string title, 
            bool isPinned,
            bool isAnnouncement,
            bool isLocked,
            string bodyText
        ) {
            // Create brief description
            string briefDescription = CommunityGlobals.TruncateWithEllipsis(CommunityGlobals.StripTags(bodyText), 500);
        
            SqlConnection conPortal = new SqlConnection(CommunityGlobals.ConnectionString);
            SqlCommand cmdAdd = new SqlCommand( "Community_DiscussEditPost", conPortal);
            cmdAdd.CommandType = CommandType.StoredProcedure;
            
            cmdAdd.Parameters.Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;
            cmdAdd.Parameters.Add("@communityID", CommunityGlobals.CommunityID);
            cmdAdd.Parameters.Add("@contentPageID", contentPageID);
            cmdAdd.Parameters.Add("@username", username);
            cmdAdd.Parameters.Add("@topicID", topicID);
            cmdAdd.Parameters.Add("@title", title);
            cmdAdd.Parameters.Add("@briefDescription", briefDescription);
            cmdAdd.Parameters.Add("@metaDescription", ContentPageUtility.CalculateMetaDescription(briefDescription));
            cmdAdd.Parameters.Add("@metaKeys", ContentPageUtility.CalculateMetaKeys(briefDescription));
            cmdAdd.Parameters.Add("@isPinned", isPinned);
            cmdAdd.Parameters.Add("@isAnnouncement", isAnnouncement);
            cmdAdd.Parameters.Add("@isLocked", isLocked);
			cmdAdd.Parameters.Add("@bodyText", SqlDbType.NText);
			cmdAdd.Parameters[ "@bodyText" ].Value = bodyText;
            
            conPortal.Open();
            cmdAdd.ExecuteNonQuery();
 
            // Edit Search Keys
            SearchUtility.EditSearchKeys(conPortal, sectionID, contentPageID, title, briefDescription);

            conPortal.Close();
          }
        


        

        //*********************************************************************
        //
        // GetPosts Method
        //
        // Gets posts for this section. 
        //
        //*********************************************************************

        public static ArrayList GetPosts(string username, int sectionID, int pageSize, int pageIndex, string sortOrder) {
            SqlConnection conPortal = new SqlConnection(CommunityGlobals.ConnectionString);
            SqlCommand cmdGet = new SqlCommand( "Community_DiscussGetPosts", conPortal);
            cmdGet.CommandType = CommandType.StoredProcedure;
            cmdGet.Parameters.Add("@communityID", CommunityGlobals.CommunityID);
            cmdGet.Parameters.Add("@username", username);
            cmdGet.Parameters.Add("@sectionID", sectionID);
            cmdGet.Parameters.Add("@pageSize", pageSize);
            cmdGet.Parameters.Add("@pageIndex", pageIndex);
            cmdGet.Parameters.Add("@sortOrder", sortOrder);
            
            ArrayList colPosts = new ArrayList();

            conPortal.Open();
            SqlDataReader dr = cmdGet.ExecuteReader();
            while (dr.Read())
                colPosts.Add(new PostInfo(dr));
            conPortal.Close();
            return colPosts;    
        }




        //*********************************************************************
        //
        // GetPostInfo Method
        //
        // Gets a particular post from the database. 
        //
        //*********************************************************************

        public static ContentInfo GetPostInfo(string username, int contentPageID) {
            PostInfo _postInfo = null;

            SqlConnection conPortal = new SqlConnection(CommunityGlobals.ConnectionString);
            SqlCommand cmdGet = new SqlCommand( "Community_DiscussGetPost", conPortal);
            cmdGet.CommandType = CommandType.StoredProcedure;
            cmdGet.Parameters.Add("@communityID", CommunityGlobals.CommunityID);
            cmdGet.Parameters.Add("@username", username);
            cmdGet.Parameters.Add("@contentPageID", contentPageID);
            conPortal.Open();
            SqlDataReader dr = cmdGet.ExecuteReader();
            if (dr.Read())
                _postInfo = new PostInfo(dr);
            conPortal.Close();
            return (ContentInfo) _postInfo;
        }



        private DiscussUtility() {}
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -