/// <summary> /// Retrieve all records except specified top records by rating /// </summary> /// <param name="n">number of top records to skip</param> /// <returns>list of retrieved data rows</returns> public static List <ProductReviewModel> GetAllReportExceptTops(int n) { ProductReviewData reviewData = new ProductReviewData(); var productReviews = (from review in reviewData.ProductReviewList orderby review.Rating descending select review).TakeLast(reviewData.ProductReviewList.Count - n); return(productReviews.ToList()); }
/// <summary> /// Return count of reviews for all products /// </summary> /// <returns>Dictionary: Key - Product Key, Value - Review counts</returns> public static Dictionary <int, int> GetReviewCountByProductId() { ProductReviewData reviewData = new ProductReviewData(); var result = (from review in reviewData.ProductReviewList group review by review.ProductId) .ToDictionary(r => r.Key, r => r.Count()); return(result); }
/// <summary> /// Retrieve top three records by rating /// </summary> /// <returns>top 3 records</returns> public static IList <ProductReviewModel> GetTopThreeReview() { ProductReviewData reviewData = new ProductReviewData(); var productReviews = from review in reviewData.ProductReviewList orderby review.Rating descending select review; return(productReviews.Take(3).ToList()); }
/// <summary> /// retrieve list of reviews aggregated by product id /// </summary> /// <returns>Dictionary: Key - Product Id, Value - Review list</returns> public static Dictionary <int, List <string> > GetAllIdAndReviews() { ProductReviewData reviewData = new ProductReviewData(); var result = (from review in reviewData.ProductReviewList group review.Review by review.ProductId) .ToDictionary(r => r.Key, r => r.ToList()); return(result); }
/// <summary> /// Retrieve records with rating above a specified rating and product id with in mentioned Ids /// </summary> /// <param name="rating">product rating</param> /// <param name="ids">specified product ids</param> /// <returns>retrieved record</returns> public static IList <ProductReviewModel> GetReviews_AboveSpecifiedRating_HavingGivenIds(int rating, params int[] ids) { ProductReviewData reviewData = new ProductReviewData(); var productReviews = (from review in reviewData.ProductReviewList where review.Rating > 3 select review); List <ProductReviewModel> finalProductReview = new List <ProductReviewModel>(); foreach (int id in ids) { var products = (from review in productReviews where review.ProductId == id select review); finalProductReview.AddRange(products.ToList()); } return(finalProductReview); }