Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
                    }
                }
            }
        }