@RequestMapping(value = "/getAllQuestionsPaged")
  public ModelAndView GetAllQuestionsPaged(
      HttpServletRequest request,
      @RequestParam(value = "SubCategoryName", required = false) String SubCategoryName,
      @RequestParam(value = "PageNo", required = false) int PageNo,
      @RequestParam(value = "ProfileId", required = false) String ProfileId,
      @RequestParam(value = "PageSize", required = false) int PageSize) {

    ModelAndView mav = new ModelAndView();
    String Status = "3";
    String queryText = "";
    String numFound = "0";

    String friendListResult2 = null;
    String folderListResult2 = null;
    String blockListResult2 = null;
    String canSendMessagesResult2 = null;

    String friendListResult = null;
    String folderListResult = null;
    String blockListResult = null;
    String canSendMessagesResult = null;

    try {
      friendListResult2 =
          mamCacheClient.mamCachefriendList(
              ServerurlConstants.MEMCACHE_URL,
              ServerurlConstants.MEMCACHE_PORT,
              ProfileId,
              request);
      if (friendListResult2 != null) friendListResult = friendListResult2.replace(",", " , ");

      folderListResult2 =
          mamCacheClient.mamCachefolderList(
              ServerurlConstants.MEMCACHE_URL,
              ServerurlConstants.MEMCACHE_PORT,
              ProfileId,
              request);
      if (folderListResult2 != null) folderListResult = folderListResult2.replace(",", " , ");

      blockListResult2 =
          mamCacheClient.mamCacheblockList(
              ServerurlConstants.MEMCACHE_URL,
              ServerurlConstants.MEMCACHE_PORT,
              ProfileId,
              request);
      if (blockListResult2 != null) blockListResult = blockListResult2.replace(",", " , ");

      canSendMessagesResult2 =
          mamCacheClient.mamCachecanSendMessages(
              ServerurlConstants.MEMCACHE_URL,
              ServerurlConstants.MEMCACHE_PORT,
              ProfileId,
              request);
      if (canSendMessagesResult2 != null)
        canSendMessagesResult = canSendMessagesResult2.replace(",", " , ");

    } catch (Exception e) {
      e.printStackTrace();
    }

    List<DiscussionQuestion> questions = new ArrayList<DiscussionQuestion>();
    Object[] resultArrDiscussion = null;
    long numFoundDiscussion = 0;
    /*	if((SubCategoryName!="" || SubCategoryName!=null )& ProfileId!="0" & (blockListResult!=null || blockListResult!="") ){
    //	queryText = "(SubCategorySafeName:"+SubCategoryName+")";

    	queryText = "(SubCategorySafeName:"+SubCategoryName+" OR CreatedUserID:"+ProfileId+" AND(Everyone:1 OR (CreatedUserID:"+friendListResult+" AND FoldersShowList:"+folderListResult+" AND ContactsShowList:"+ProfileId+"))" +
    	" NOT (Onlyme:1 OR ContactsHideList:"+ProfileId+"))";

    }else if((SubCategoryName!="" || SubCategoryName!=null) & ProfileId!="0"){
    	queryText = "(SubCategorySafeName:"+SubCategoryName+" OR CreatedUserID:"+ProfileId+"  AND(Everyone:1 OR (CreatedBy:"+friendListResult+" AND FoldersShowList:"+folderListResult+" AND ContactsShowList:"+ProfileId+"))" +
    	" NOT (Onlyme:1 OR FoldersHideList:"+blockListResult+" OR ContactsHideList:"+ProfileId+" OR CreatedBy:"+blockListResult+" ))";
    }else{

    	queryText = "(SubCategorySafeName:"+SubCategoryName+" AND Everyone:1)";

    }*/

    /*	if((SubCategoryName!="" || SubCategoryName!=null ) && ProfileId!="0" && (blockListResult!=null || blockListResult!="" || blockListResult!="0") ){
    //		if((SubCategoryName!="" || SubCategoryName!=null )& ProfileId!="0" ){

    				queryText = "(((SubCategorySafeName:"+SubCategoryName+" AND ( Everyone:1 OR (CreatedUserID:"+friendListResult+" AND FoldersShowList:"+folderListResult+" AND ContactsShowList:"+ProfileId+")) NOT (Onlyme:1 OR ContactsHideList:"+ProfileId+")) OR (CreatedUserID:"+ProfileId+" OR SubCategorySafeName:"+SubCategoryName+")) NOT (ContactsHideList:"+ProfileId+" OR Onlyme:1 ))";

    			}else if((SubCategoryName!="" || SubCategoryName!=null) && ProfileId!="0"){
    				queryText = "(((SubCategorySafeName:"+SubCategoryName+" AND ( Everyone:1 OR (CreatedUserID:"+friendListResult+" AND FoldersShowList:"+folderListResult+" AND ContactsShowList:"+ProfileId+")) NOT (Onlyme:1 OR ContactsHideList:"+ProfileId+")) OR (CreatedUserID:"+ProfileId+" OR SubCategorySafeName:"+SubCategoryName+")) NOT (ContactsHideList:"+ProfileId+" OR Onlyme:1 ))";
    			}else{

    				queryText = "(SubCategorySafeName:"+SubCategoryName+" AND Everyone:1)";

    			}*/

    if (blockListResult.equals("") || blockListResult == null) blockListResult = "1";

    if (folderListResult.equals("") || folderListResult == null) folderListResult = "0";

    if (friendListResult.equals("") || friendListResult == null) friendListResult = "0";

    if ((SubCategoryName != "" && SubCategoryName != null)
        && ProfileId != "0"
        && (blockListResult != null && blockListResult != "" && blockListResult != "0")
        && (folderListResult != null && folderListResult != "")) {
      //			if((SubCategoryName!="" || SubCategoryName!=null )& ProfileId!="0" ){

      queryText =
          "(SubCategorySafeName:"
              + SubCategoryName
              + " AND -CreatedUserID:"
              + ProfileId
              + " AND (Everyone:1 OR((CreatedUserID:"
              + friendListResult
              + ") AND (ContactsShowList:0) AND (FoldersShowList:"
              + folderListResult
              + " OR FoldersShowList:0))) NOT ((Onlyme:1) OR (ContactsHideList:"
              + ProfileId
              + ") OR (FoldersHideList:"
              + folderListResult
              + "))) OR (SubCategorySafeName:"
              + SubCategoryName
              + "  AND CreatedUserID:"
              + ProfileId
              + ") OR    (SubCategorySafeName:"
              + SubCategoryName
              + "  AND CreatedUserID:"
              + friendListResult
              + " AND ContactsShowList:"
              + ProfileId
              + ") -CreatedUserID:"
              + blockListResult
              + " ";

    } else if ((SubCategoryName != "" && SubCategoryName != null) && ProfileId != "0") {
      queryText =
          "(SubCategorySafeName:"
              + SubCategoryName
              + " AND -CreatedUserID:"
              + ProfileId
              + " AND (Everyone:1 OR((ContactsShowList:0) AND (FoldersShowList:0))) NOT ((Onlyme:1) OR (ContactsHideList:"
              + ProfileId
              + "))) OR (SubCategorySafeName:"
              + SubCategoryName
              + "  AND CreatedUserID:"
              + ProfileId
              + ") OR    (SubCategorySafeName:"
              + SubCategoryName
              + "  AND ContactsShowList:"
              + ProfileId
              + ") ";
    } else {

      queryText = "(SubCategorySafeName:" + SubCategoryName + " AND Everyone:1)";
    }

    if (ProfileId.equals("0")) {
      queryText = "(SubCategorySafeName:" + SubCategoryName + " AND Everyone:1)";
    }

    System.out.println("------------->Query" + queryText);

    //	Earlier
    //	resultArrDiscussion =
    // discussionQuestionClient.fetchAllQuestionsPaged(queryText,PageNo,PageSize ,
    // "LastRepliedDate","desc" , request);

    // Changed

    resultArrDiscussion =
        discussionQuestionClient.fetchAllQuestionsPaged(
            queryText, PageNo, PageSize, "LastRepliedDate", "desc", request);
    numFoundDiscussion = Integer.parseInt(resultArrDiscussion[1].toString());
    questions = (List<DiscussionQuestion>) resultArrDiscussion[0];
    // Collections.sort(questions);
    mav.addObject("TotalRecords", numFoundDiscussion);
    mav.addObject("StatusOutput", SubCategoryName);
    mav.addObject("Collection", questions);
    mav.addObject("IsConnected", "1");

    return mav;
  }
  @RequestMapping(value = "/findmainautocomplete")
  public @ResponseBody AutoCompleteResponse findQuestionsMainAutoComplete(
      HttpServletRequest request,
      @RequestParam(value = "ProfileId", required = false) String ProfileId,
      @RequestParam(value = "query", required = false) String Keyword) {
    ModelAndView mav = new ModelAndView();

    String friendListResult2 = null;
    String folderListResult2 = null;
    String blockListResult2 = null;
    String canSendMessagesResult2 = null;

    String friendListResult = null;
    String folderListResult = null;
    String blockListResult = null;
    String canSendMessagesResult = null;

    try {
      friendListResult2 =
          mamCacheClient.mamCachefriendList(
              ServerurlConstants.MEMCACHE_URL,
              ServerurlConstants.MEMCACHE_PORT,
              ProfileId,
              request);
      if (friendListResult2 != null) friendListResult = friendListResult2.replace(",", " , ");

      folderListResult2 =
          mamCacheClient.mamCachefolderList(
              ServerurlConstants.MEMCACHE_URL,
              ServerurlConstants.MEMCACHE_PORT,
              ProfileId,
              request);
      if (folderListResult2 != null) folderListResult = folderListResult2.replace(",", " , ");

      blockListResult2 =
          mamCacheClient.mamCacheblockList(
              ServerurlConstants.MEMCACHE_URL,
              ServerurlConstants.MEMCACHE_PORT,
              ProfileId,
              request);
      if (blockListResult2 != null) blockListResult = blockListResult2.replace(",", " , ");

      canSendMessagesResult2 =
          mamCacheClient.mamCachecanSendMessages(
              ServerurlConstants.MEMCACHE_URL,
              ServerurlConstants.MEMCACHE_PORT,
              ProfileId,
              request);
      if (canSendMessagesResult2 != null)
        canSendMessagesResult = canSendMessagesResult2.replace(",", " , ");

    } catch (Exception e) {
      e.printStackTrace();
    }

    if (friendListResult.equals("") || friendListResult == null) friendListResult = "1000000000";

    List<DiscussionQuestion> questions = new ArrayList<DiscussionQuestion>();
    Object[] resultArrDiscussion = null;
    String queryText = null;
    long numFoundDiscussion = 0;

    // **********	Older query  ************/
    //	queryText = "(QuestionText:"+Keyword.toLowerCase()+"*) OR (Tags:"+Keyword.toLowerCase()+"*)";

    if ((Keyword != "" || Keyword != null)
        && ProfileId != "0"
        && (blockListResult != null && blockListResult != "" && blockListResult != "0")
        && (folderListResult != null && folderListResult != "")) {
      //				if((SubCategoryName!="" || SubCategoryName!=null )& ProfileId!="0" ){

      queryText =
          "(((QuestionText:"
              + Keyword.toLowerCase()
              + "*) OR (Tags:"
              + Keyword.toLowerCase()
              + "*)) AND -CreatedUserID:"
              + ProfileId
              + " AND (Everyone:1 OR((CreatedUserID:"
              + friendListResult
              + ") AND (ContactsShowList:0) AND (FoldersShowList:"
              + folderListResult
              + " OR FoldersShowList:0))) NOT ((Onlyme:1) OR (ContactsHideList:"
              + ProfileId
              + ") OR (FoldersHideList:"
              + folderListResult
              + "))) OR ((QuestionText:"
              + Keyword.toLowerCase()
              + "*) OR (Tags:"
              + Keyword.toLowerCase()
              + "*) AND CreatedUserID:"
              + ProfileId
              + ") OR    ((QuestionText:"
              + Keyword.toLowerCase()
              + "*) OR (Tags:"
              + Keyword.toLowerCase()
              + "*)  AND CreatedUserID:"
              + friendListResult
              + " AND ContactsShowList:"
              + ProfileId
              + ") -CreatedUserID:"
              + blockListResult
              + " ";

    } else if ((Keyword != "" || Keyword != null) && ProfileId != "0") {
      queryText =
          "(((QuestionText:"
              + Keyword.toLowerCase()
              + "*) OR (Tags:"
              + Keyword.toLowerCase()
              + "*)) AND -CreatedUserID:"
              + ProfileId
              + " AND (Everyone:1 OR((CreatedUserID:"
              + friendListResult
              + ") AND (ContactsShowList:0) AND (FoldersShowList:0))) NOT ((Onlyme:1) OR (ContactsHideList:"
              + ProfileId
              + "))) OR ((QuestionText:"
              + Keyword.toLowerCase()
              + "*) OR (Tags:"
              + Keyword.toLowerCase()
              + "*)  AND CreatedUserID:"
              + ProfileId
              + ") OR    ((QuestionText:"
              + Keyword.toLowerCase()
              + "*) OR (Tags:"
              + Keyword.toLowerCase()
              + "*)  AND ContactsShowList:"
              + ProfileId
              + ")";
    } else {

      queryText =
          "(((QuestionText:"
              + Keyword.toLowerCase()
              + "*) OR (Tags:"
              + Keyword.toLowerCase()
              + "*)) AND Everyone:1)";
    }
    if (ProfileId.equals("0")) {
      queryText =
          "((QuestionText:"
              + Keyword.toLowerCase()
              + "*) OR (Tags:"
              + Keyword.toLowerCase()
              + "*) AND Everyone:1)";
    }

    System.out.println("Query-->" + queryText);

    resultArrDiscussion = this.fetchDiscussionData(queryText, 0, 10);
    numFoundDiscussion = Integer.parseInt(resultArrDiscussion[1].toString());
    questions = (List<DiscussionQuestion>) resultArrDiscussion[0];
    List data = new ArrayList();
    List suggestions = new ArrayList();
    for (DiscussionQuestion question : questions) {
      data.add(question.getID());
      suggestions.add(question.getQuestionText());
    }
    AutoCompleteResponse autoComplete = new AutoCompleteResponse();
    autoComplete.setQuery(Keyword);
    autoComplete.setData(data);
    autoComplete.setSuggestions(suggestions);
    // mav.addObject(autoComplete);
    return autoComplete;
  }