public void rankOnCitationPopularity(Guid vertical, CancellationTokenSource cancellationToken)
        {
            uint vIndex = VerticalConstants.getVerticalIndex(vertical);

            rankOnCitationPopularity(vIndex, NToIndex, cancellationToken);
            dataSetV[vIndex] = true;
        }
        public void reRank(Guid vertical, CancellationTokenSource cancellationToken)
        {
            uint vindex = VerticalConstants.getVerticalIndex(vertical);

            dataSetV[vindex] = false;
            rankOnCitationPopularity(vertical, cancellationToken);
        }
        // Rank for a particular vertical only.
        public void rankOnCitationPopularity(Guid vertical)
        {
            uint vIndex = VerticalConstants.getVerticalIndex(vertical);

            rankOnCitationPopularity(vIndex, NToIndex);
            dataSetV[vIndex] = true;
        }
        /*  public void reRank()
         * {
         *    dataSetV[vIndex] = false;
         *    rankOnCitationPopularity();
         * }
         * */

        public void reRank(Guid vertical)
        {
            uint vindex = VerticalConstants.getVerticalIndex(vertical);

            dataSetV[vindex] = false;
            rankOnCitationPopularity(vertical);
        }
 public Dictionary <string, RankingMetrics> getAllRankedURLNotInDB(Guid vertical)
 {
     if (!dataSetV[VerticalConstants.getVerticalIndex(vertical)])
     {
         rankOnCitationPopularity(vertical);
     }
     return(_rankedURLNotInDB[VerticalConstants.getVerticalIndex(vertical)]);
 }
        /* Don't fetch from DB here. Operatoion too time expensive
         * // Top N ranking Articles pre-fetched for you
         * public SortedList<double, Article> getTopRankedNArticles( Guid vertical )
         * {
         *  if (!dataSetV[VerticalConstants.getVerticalIndex(vertical)])
         *  {
         *      rankOnCitationPopularity(vertical);
         *  }
         *  return _topNRankedArticles[VerticalConstants.getVerticalIndex(vertical)];
         * }
         * */

        public SortedList <double, Guid> getAllRankedArticleMetrics(Guid vertical)
        {
            if (!dataSetV[VerticalConstants.getVerticalIndex(vertical)])
            {
                rankOnCitationPopularity(vertical);
            }
            return(_allRankedArticleMetrics[VerticalConstants.getVerticalIndex(vertical)]);
        }
 public double getAveragePopularityScore(Guid vertical)
 {
     if (!dataSetV[VerticalConstants.getVerticalIndex(vertical)])
     {
         rankOnCitationPopularity(vertical);
     }
     return(_averagePopularityScore[VerticalConstants.getVerticalIndex(vertical)]);
 }
        // Reclaim memory for a particular Vertical.
        public void clearVertical(Guid vertical)
        {
            uint vid = VerticalConstants.getVerticalIndex(vertical);

//            _topNRankedArticles[vid].Clear();
            _allRankedArticleMetrics[vid].Clear();
            _rankedURLNotInDB[vid].Clear();
            _averagePopularityScore[vid] = 0.0;
            dataSetV[vid] = false;
        }