Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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);
        }