//
        // Returns the reviews with the given state
        //
        private static Pair <ReviewState.ReviewStatistics[], ReviewState.ReviewStatistics[]> WhereReviews(ReviewState.ReviewStatistics[] reviewStats, ReviewState.State requestedState)
        {
            var shippedReviews    = reviewStats.Where(thisReview => thisReview.State == requestedState && thisReview.ShipIts > 0);
            var notshippedReviews = reviewStats.Where(thisReview => thisReview.State == requestedState && thisReview.ShipIts == 0);

            return(new Pair <ReviewState.ReviewStatistics[], ReviewState.ReviewStatistics[]>(shippedReviews.ToArray(), notshippedReviews.ToArray()));
        }
        //
        // Returns the number of reviews with this state
        //
        private static Pair <int, int> CountReviews(ReviewState.ReviewStatistics[] reviewStats, ReviewState.State requestedState)
        {
            var reviews = WhereReviews(reviewStats, requestedState);

            return(new Pair <int, int>(reviews.First.Length, reviews.Second.Length));
        }