protected void BindQuestionList(int pageNo)
    {
        Keyword = WebUtil.GetRequestParamValueInString(AppConstants.QueryString.QUESTION_KEYWORD);
        Category = WebUtil.GetRequestParamValueInString(AppConstants.QueryString.QUESTION_CATEGORY);
        if (Category == "None")
        {
            Category = null;
        }

        SessionCache.CurrentQuestionSearchCriteriaForKeyword = null;
        SessionCache.CurrentQuestionSearchCriteriaForCategory = null;

        if (!string.IsNullOrEmpty(Keyword))
        {
            SessionCache.CurrentQuestionSearchCriteriaForKeyword = Keyword;
        }
        else
        {
            SessionCache.CurrentQuestionSearchCriteriaForCategory = Category;
        }

        int pageSize = ConfigReader.AdminQuestionListSize;
        App.Domain.Questions.QuestionsManager manager = new App.Domain.Questions.QuestionsManager();
        List<Questions> questions = null;
        int totalRecord = 0;

        if (ShowQuestionsForAnswerMode)
        {
            bool filter = false;
            if (SessionCache.CurrentUser != null)
            {
                if (SessionCache.CurrentUser.Mode == "Filtered")
                {
                    filter = true;
                }
            }
            questions = manager.GetPagedListByKeywordOrCategory(pageNo, pageSize, Keyword, Category,SessionCache.CurrentUser.Author_ID,filter).ToList();
            totalRecord = manager.GetQuestionCountByKeywordOrCategory(Keyword, Category, SessionCache.CurrentUser.Author_ID, filter);
        }
        else
        {
            questions = manager.GetPagedListByKeywordOrCategory(pageNo, pageSize, null, null, SessionCache.CurrentUser.Author_ID, false).ToList();
            totalRecord = manager.GetQuestionCountByKeywordOrCategory(string.Empty, string.Empty, SessionCache.CurrentUser.Author_ID, false);
        }

        SessionCache.CurrentQuestionPageNo = pageNo;
        SessionCache.CurrentQuestionList = questions;

        if (questions == null || questions.Count == 0)
        {
            rptQuestionList.Visible = false;
            ucPager.Visible = false;
            divNoQuestionFound.Visible = true;
        }
        else
        {
            divNoQuestionFound.Visible = false;
            rptQuestionList.DataSource = questions;
            rptQuestionList.DataBind();
            BindPagerControl(pageNo, totalRecord, pageSize);
        }
    }
Ejemplo n.º 2
0
    public static Questions GetNextQuestion(int currentQuestionID)
    {
        IList<Questions> questions = CurrentQuestionList;
        string Keyword = CurrentQuestionSearchCriteriaForKeyword;
        string Category = CurrentQuestionSearchCriteriaForCategory;

        Questions nextQuestion = null;

        if (questions != null)
        {
            for (int i = 0; i < questions.Count; i++)
            {
                if (questions[i].QuestionID == currentQuestionID && i + 1 < questions.Count)
                {
                    nextQuestion = questions[i + 1];
                }
            }
        }

        if (nextQuestion == null)
        {
            //Reload the questions based upon the current criteria
            int pageSize = ConfigReader.AdminQuestionListSize;
            App.Domain.Questions.QuestionsManager manager = new App.Domain.Questions.QuestionsManager();
            int pageNo = CurrentQuestionPageNo + 1;
            CurrentQuestionPageNo = pageNo;

            if (string.IsNullOrEmpty(Keyword) && string.IsNullOrEmpty(Category))
            {
                questions = manager.GetPagedList(pageNo, 1000000).ToList();
            }
            else
            {
                bool filter = false;
                if (SessionCache.CurrentUser != null)
                {
                    if (SessionCache.CurrentUser.Mode == "Filtered")
                    {
                        filter = true;
                    }
                }
                questions = manager.GetPagedListByKeywordOrCategory(pageNo, 10000000, Keyword, Category, SessionCache.CurrentUser.Author_ID, filter).ToList();
            }

            CurrentQuestionList = questions;

            if (questions != null)
            {
                for (int i = 0; i < questions.Count; i++)
                {
                    if (questions[i].QuestionID == currentQuestionID && i + 1 < questions.Count)
                    {
                        nextQuestion = questions[i + 1];
                    }
                }
            }
        }

        return nextQuestion;
    }