Represents User´s ratings
示例#1
0
 public JsonResult SetRating(Rating rating)
 {
     if (Request.Cookies["rating_" + rating.PostId.ToString()] != null)
     {
         double storedrating = Double.Parse(Request.Cookies["rating_" + rating.PostId.ToString()].Value);
         Rating oldrating = RatingServices.FindAllEntities(r => r.PostId == rating.PostId && r.Value == storedrating,null,null).FirstOrDefault();
         if (oldrating != null)
         {
             RatingServices.DeleteEntity(oldrating);
         }
         RatingServices.AddEntity(rating);
         Response.Cookies["rating_" + rating.PostId.ToString()].Value = rating.Value.ToString();
         Response.Cookies["rating_" + rating.PostId.ToString()].Expires = DateTime.Now.AddYears(5);
     }
     else
     {
         HttpCookie cookie = new HttpCookie("rating_" + rating.PostId.ToString(), rating.Value.ToString());
         cookie.Expires = DateTime.Now.AddYears(5);
         Response.Cookies.Add(cookie);
         RatingServices.AddEntity(rating);
     }
     int totalvotes = RatingServices.FindAllEntities(r => r.PostId == rating.PostId,null,null).Count();
     double average = RatingServices.FindAllEntities(r => r.PostId == rating.PostId,null,null).Average(s => s.Value);
     double roundedaverage = Math.Round(average,1);
     return Json(new { roundedaverage, totalvotes });
 }