예제 #1
0
        public PostSearchResults SearchPosts(int portalId, int moduleId, int userId, string forumIds, string searchText, int rowIndex, int maxRows, string searchId, SettingsInfo mainSettings)
        {
            int searchIdValue;

            int.TryParse(searchId, out searchIdValue);

            var result = new PostSearchResults();

            if (!string.IsNullOrWhiteSpace(forumIds))
            {
                forumIds = forumIds.Replace(';', ':');
            }

            var ds = ActiveForums.DataProvider.Instance().Search(portalId, moduleId, userId, searchIdValue, rowIndex, maxRows, searchText, 0, 0, 0, 0, null, forumIds, null, 1, 0, 1, mainSettings.FullText);

            if (ds.Tables.Count > 2)
            {
                return(null);
            }

            var dtSummary = ds.Tables[0];
            var dtResults = ds.Tables[1];

            result.SearchId   = dtSummary.Rows[0].GetInt("SearchId");
            result.TotalPosts = dtSummary.Rows[0].GetInt("TotalRecords");
            result.Topics     = new List <ForumPost>(dtResults.Rows.Count);

            foreach (var row in dtResults.AsEnumerable())
            {
                ((List <ForumPost>)result.Topics).Add(new ForumPost
                {
                    ForumId     = row.GetInt("ForumId"),
                    ForumName   = row.GetString("ForumName"),
                    TopicId     = row.GetInt("TopicId"),
                    ReplyId     = row.GetInt("ReplyId"),
                    ContentId   = row.GetInt("ContentId"),
                    Subject     = row.GetString("Subject"),
                    PostSubject = row.GetString("PostSubject"),
                    Summary     = row.GetString("Summary"),
                    AuthorId    = row.GetInt("AuthorId"),
                    AuthorName  = row.GetString("AuthorName"),
                    UserName    = row.GetString("AuthorUserName"),
                    FirstName   = row.GetString("AuthorFirstName"),
                    LastName    = row.GetString("AuthorLastName"),
                    DisplayName = row.GetString("AuthorDisplayName"),
                    Body        = row.GetString("Body"),
                    DateCreated = row.GetDateTime("DateCreated"),
                    DateUpdated = row.GetDateTime("DateCreated")
                });
            }

            return(result);
        }
        public PostSearchResults SearchPosts(int portalId, int moduleId, int userId, string forumIds, string searchText, int rowIndex, int maxRows, string searchId, SettingsInfo mainSettings)
        {
            int searchIdValue;
            int.TryParse(searchId, out searchIdValue);

            var result = new PostSearchResults();

            if (!string.IsNullOrWhiteSpace(forumIds))
                forumIds = forumIds.Replace(';', ':');

            var ds = ActiveForums.DataProvider.Instance().Search(portalId, moduleId, userId, searchIdValue, rowIndex, maxRows, searchText, 0, 0, 0, 0, null, forumIds, null, 1, 0, 1, mainSettings.FullText);

            if (ds.Tables.Count > 2)
                return null;

            var dtSummary = ds.Tables[0];
            var dtResults = ds.Tables[1];

            result.SearchId = dtSummary.Rows[0].GetInt("SearchId");
            result.TotalPosts = dtSummary.Rows[0].GetInt("TotalRecords");
            result.Topics = new List<ForumPost>(dtResults.Rows.Count);

            foreach (var row in dtResults.AsEnumerable())
            {
                ((List<ForumPost>)result.Topics).Add(new ForumPost
                {
                    ForumId = row.GetInt("ForumId"),
                    ForumName = row.GetString("ForumName"),
                    TopicId = row.GetInt("TopicId"),
                    ReplyId = row.GetInt("ReplyId"),
                    ContentId = row.GetInt("ContentId"),
                    Subject = row.GetString("Subject"),
                    PostSubject = row.GetString("PostSubject"),
                    Summary = row.GetString("Summary"),
                    AuthorId = row.GetInt("AuthorId"),
                    AuthorName = row.GetString("AuthorName"),
                    UserName = row.GetString("AuthorUserName"),
                    FirstName = row.GetString("AuthorFirstName"),
                    LastName = row.GetString("AuthorLastName"),
                    DisplayName = row.GetString("AuthorDisplayName"),
                    Body = row.GetString("Body"),
                    DateCreated = row.GetDateTime("DateCreated"),
                    DateUpdated = row.GetDateTime("DateCreated")
                });
            }

            return result;
        }