コード例 #1
0
ファイル: QAndAService.cs プロジェクト: radtek/yiqixicai
        /// <summary>
        /// 更新索引
        /// </summary>
        /// <param name="questionId"></param>
        public void SetQuestionFullSearch(int questionId)
        {
            try
            {
                var selectSql = @"SELECT q.QuestionId,q.Title,q.Question,q.Tags,q.NewAnswer,
q.isThematic,q.IsDelete,q.answerCount,
q.QuestionTime,q.AnswerId,q.Integration,q.SortId,q.LastAnswerTime,u.Realname, u1.Realname AS answerName,
q.LastAnswerUserId 
FROM Int_Question q
LEFT JOIN Sys_Users u ON q.UserId=u.UserId
LEFT JOIN sys_users u1 ON q.LastAnswerUserId=u1.UserId 

WHERE q.QuestionId=" + questionId;

                FullTextIndexQuestion question = _dataAccess.FetchListBySql <FullTextIndexQuestion>(selectSql).First();
                if (question.IsThematic == 1)
                {
                    return;
                }
                if (question.IsDelete == 1)
                {
                    FullTextSearchProvider.DelIndex <FullTextIndexQuestion>("intquestion", questionId);
                }
                else
                {
                    FullTextSearchProvider.Index(question, "intquestion", questionId, true);
                }
            }
            catch { }
        }
コード例 #2
0
 internal static void DeleteCourseIndex(int courseId)
 {
     try
     {
         FullTextSearchProvider.DelIndex <FullTextSearchCourse>("course", courseId);
     }
     catch { }
 }
コード例 #3
0
ファイル: QAndAService.cs プロジェクト: radtek/yiqixicai
        /// <summary>
        /// 批量删除
        /// </summary>
        /// <param name="questionIds"></param>
        /// <returns></returns>
        public int DeleteQuestions(IEnumerable <int> questionIds)
        {
            var sortIds =
                _dataAccess.FetchListBySql <int>("SELECT SortId FROM Int_Question WHERE QuestionId IN (" +
                                                 questionIds.GetString() + ")");
            var allsorts = BusinessCache.SingleTableCache.Instance.GetCache <QuestionSort>();

            var updateCountSql = new StringBuilder();

            foreach (var sortId in sortIds)
            {
                if (sortId == 0)
                {
                    continue;
                }

                QuestionSort sort = allsorts.First(p => p.SortId == sortId);
                while (sort.ParentId != 0)
                {
                    sort = allsorts.First(p => p.SortId == sort.ParentId);
                }

                updateCountSql.AppendLine("UPDATE Int_QuestionSort SET QuestionCount=QuestionCount-1 WHERE SortId =" + sort.SortId);
            }
            if (updateCountSql.Length > 0)
            {
                _dataAccess.ExecuteSql(updateCountSql.ToString());
            }
            //删除索引
            foreach (var questionId in questionIds)
            {
                FullTextSearchProvider.DelIndex <FullTextIndexQuestion>("intquestion", questionId);
            }


            return(_dataAccess.UpdateField("Int_Question", "IsDelete", "1",
                                           "QuestionId IN (" + questionIds.GetString() + ")"));
        }