public async Task <IActionResult> Rate(ReaderChapterViewModel model) { var composition = _dbCompositionService.FindById(model.CompositionId); if (composition != null && model.Rating > 0) { var user = await _userManager.GetUserAsync(HttpContext.User); if (_dbRatingService.FindByUserIdAndCompositionId(user.Id, composition.Id) == null) { var rating = new Rating() { UserId = user.Id, CompositionId = model.CompositionId, Mark = model.Rating }; _dbRatingService.Add(rating); } else { _dbRatingService.UpdateMark(user.Id, composition.Id, model.Rating); } var url = Url.Action("Index", "Reader", new { compositionId = model.CompositionId, chapterId = model.ChapterId }); return(Redirect(url)); } return(BadRequest()); }
public async Task <IActionResult> Like(ReaderChapterViewModel model) { IActionResult result; var chapter = await _dbChapterService.FindByIdAsync(model.ChapterId); var user = await _userManager.GetUserAsync(HttpContext.User); if (chapter != null && user != null) { var url = Url.Action("Index", "Reader", new { compositionId = model.CompositionId, chapterId = model.ChapterId }); result = Redirect(url); var dbLike = _dbLikeService.FindByUserIdAndChapterId(user.Id, model.ChapterId); if (dbLike == null) { _dbLikeService.Add(new Like() { ChapterId = model.ChapterId, CompositionId = model.CompositionId, DateTime = DateTime.Now, UserId = user.Id }); } else { _dbLikeService.Remove(dbLike); } } else { result = BadRequest(); } return(result); }