Example #1
0
        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");
        }
Example #2
0
        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);
        }
Example #3
0
        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));
        }