public static int SaveRating(int quoteId, byte rating) { int result = 0; using (RonSwanson_Quotes.RonSwansonQuotes_dbEntities dc = new RonSwanson_Quotes.RonSwansonQuotes_dbEntities()) { dc.RatingsTables.Add(new RatingsTable { QuoteId = quoteId, Rating = rating, RatingId = (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds(), Date = DateTime.Now }); dc.SaveChanges(); var newRating = (from a in dc.RatingsTables where a.QuoteId.Equals(quoteId) group a by a.QuoteId into aa select new { QuoteRating = aa.Sum(a => a.Rating) / aa.Count() }).FirstOrDefault(); result = newRating.QuoteRating; } return(result); }
private void DisplayQuote(string quote) { using (RonSwanson_Quotes.RonSwansonQuotes_dbEntities dc = new RonSwanson_Quotes.RonSwansonQuotes_dbEntities()) { var v = (from a in dc.QuotesTables join b in dc.RatingsTables on a.QuoteId equals b.QuoteId into bb from b in bb.DefaultIfEmpty() group new { a, b } by new { a.QuoteId, a.QuoteText } into AA select new { AA.Key.QuoteId, AA.Key.QuoteText, Score = AA.Sum(a => a.b.Rating) == null ? 0 : AA.Sum(a => a.b.Rating), Count = AA.Count() }); foreach (var i in v) { if (i.QuoteText.Equals(quote)) { var DisplayedQuote = new List <QuoteWithRating>(); DisplayedQuote.Add(new QuoteWithRating() { QuoteID = i.QuoteId, QuoteText = i.QuoteText, Rating = i.Score / i.Count }); GridView1.DataSource = DisplayedQuote; GridView1.DataBind(); } } } }