public string TryRateBlog(int id, int rating) { string credential = ExpUtil.GetIPAddress(Context); bool rated = false; if (RateWithAccount) { if (!Context.User.Identity.IsAuthenticated) { return("login"); } credential = Context.User.Identity.Name; rated = _db.BlogRatings.Any(r => r.BlogID == id && r.credential == credential); } else { rated = _db.BlogRatings.Any(r => r.BlogID == id && r.credential == credential && DbFunctions.DiffDays(r.ratetime, DateTime.Today) < 1); } if (rated) { return("rated" + (RateWithAccount ? "" : "_today")); } var Rate = AddBlogRating(id, rating, credential); if (Rate == null) { return("error"); } TriggerRateBlog(Rate); return("ok"); }
public UsersRating GetUsersRating(int blogid) { var credential = RateWithAccount ? Context.User.Identity.Name : ExpUtil.GetIPAddress(Context); BlogRating rating = null; if (RateWithAccount) { rating = _db.BlogRatings.FirstOrDefault(r => r.BlogID == blogid && r.credential == credential); } else { rating = _db.BlogRatings.FirstOrDefault(r => r.BlogID == blogid && r.credential == credential && DbFunctions.DiffDays(r.ratetime, DateTime.Today) == 0); } var self = new UsersRating { BlogID = blogid, credential = credential, RateWithAccount = RateWithAccount }; if (rating != null) { self.Rating = rating; self.HasPost = rating.PostId.HasValue; } return(self); }
public Dictionary <int, int> GetUsersRatingValues(IEnumerable <int> blogids) { var credential = RateWithAccount ? Context.User.Identity.Name : ExpUtil.GetIPAddress(Context); IQueryable <BlogRating> ratings = null; if (RateWithAccount) { ratings = _db.BlogRatings.Where(r => blogids.Contains(r.BlogID) && r.credential == credential); } else { ratings = _db.BlogRatings.Where(r => blogids.Contains(r.BlogID) && r.credential == credential && DbFunctions.DiffDays(r.ratetime, DateTime.Today) == 0); } return(ratings.ToDictionary(v => v.BlogID, v => v.value)); }