public async Task <IActionResult> Edit(int id, [Bind("Id,ContentId,UserId,Rating")] UsersRating usersRating) { if (id != usersRating.UserId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(usersRating); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!UsersRatingExists(usersRating.UserId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["ContentId"] = new SelectList(_context.Contents, "Id", "Discriminator", usersRating.ContentId); ViewData["UserId"] = new SelectList(_context.Users, "Id", "Login", usersRating.UserId); return(View(usersRating)); }
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 async Task <IActionResult> Create([Bind("Id,ContentId,UserId,Rating")] UsersRating usersRating) { if (ModelState.IsValid) { _context.Add(usersRating); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["ContentId"] = new SelectList(_context.Contents, "Id", "Discriminator", usersRating.ContentId); ViewData["UserId"] = new SelectList(_context.Users, "Id", "Login", usersRating.UserId); return(View(usersRating)); }
public ActionResult AddReplyWithRate(int itemid, string addreplycontent, string Captcha, string Prefix, int?rating) { Post post; try { CheckPost(Captcha, Prefix, addreplycontent); UsersRating userrate = null; if (rating != null && RatingUtil.RatingValue.ContainsKey(rating.Value)) { userrate = _ratingUtil.GetUsersRating(itemid); if (userrate.Rating != null && (userrate.HasPost || userrate.Rating.value != RatingUtil.RatingValue[rating.Value])) { throw new BlogException(userrate.RateWithAccount ? "您已经评过分了" : "今天已经评过分了"); } } post = _blogUtil.AddBlogPost(itemid, User.Identity.Name, _sanitizerService.Sanitize(addreplycontent)); HttpContext.Session.SetDateTime("LastPostTime", DateTime.Now); if (userrate != null) { if (userrate.Rating == null) { var Rate = _ratingUtil.AddBlogRating(itemid, rating.Value, userrate.credential, post.PostId); if (Rate != null) { _ratingUtil.getRating(itemid, false); } } else { userrate.Rating.PostId = post.PostId; _db.SaveChanges(); } } TriggerAddPost(post); } catch (BlogException e) { return(Json(new { err = e.Message })); } string expmsg = HttpContext.Items["QuestMsg"] as string; return(Json(new { id = post.PostId, expmsg })); }
public async Task <ActionResult> Comment([FromBody] AddCommentRequest request) { if (string.IsNullOrWhiteSpace(BlogHelper.removeAllTags(request.Content))) { return(BadRequest(new { error = "内容不能为空或纯图片。" })); } Post post; switch (request.Type) { case Models.App.Comment.CommentType.Blog: var blog = await _db.Blogs.Include("option").SingleOrDefaultAsync(b => b.BlogID == request.ItemId); if (blog == null) { return(NotFound()); } if (blog.option != null && blog.option.NoComment) { return(Forbid()); } UsersRating userrate = null; if (request.Rating != null && RatingUtil.RatingValue.ContainsKey(request.Rating.Value)) { if (blog.option.NoRate) { return(Forbid()); } userrate = _ratingUtil.GetUsersRating(request.ItemId); if (userrate.Rating != null && (userrate.HasPost || userrate.Rating.value != RatingUtil.RatingValue[request.Rating.Value])) { return(BadRequest(new { error = userrate.RateWithAccount ? "您已经评过分了" : "今天已经评过分了" })); } } post = _blogUtil.AddBlogPost(request.ItemId, User.Identity.Name, _sanitizerService.Sanitize(request.Content)); if (userrate != null) { if (userrate.Rating == null) { var Rate = _ratingUtil.AddBlogRating(request.ItemId, request.Rating.Value, userrate.credential, post.PostId); if (Rate != null) { _ratingUtil.getRating(request.ItemId, false); } } else { userrate.Rating.PostId = post.PostId; await _db.SaveChangesAsync(); } } break; default: return(BadRequest()); } TriggerAddPost(post); string expmsg = HttpContext.Items["QuestMsg"] as string; return(Json(new AddReplyResponse { CommentId = post.PostId, Message = expmsg })); }