예제 #1
0
        public async Task <IActionResult> AboutFanficView(int id, int page = 1)
        {
            int pagesize = 12;
            var model    = await _unitOfWork.Fanfic.GetByIdAsync(id);

            var viewmodel = new FanficTagViewModel()
            {
                ApplicationUser   = model.ApplicationUser,
                DateTimePublish   = model.DateTimePublish,
                FanficId          = model.FanficId,
                FanficsTags       = model.FanficsTags,
                ApplicationUserId = model.ApplicationUserId,
                NameFanfic        = model.NameFanfic,
                Description       = model.Description
            };
            var comme = _a.Comments.Include(f => f.Fanfics)
                        .Include(a => a.ApplicationUsers).Where(fi => fi.FanficId == id);
            int countElement = await comme.CountAsync();

            PaginationPageViewModel paginationPageViewModel = new PaginationPageViewModel(countElement, page, pagesize);
            var items = await comme.Skip((page - 1) *pagesize).Take(pagesize).ToListAsync();

            viewmodel.PaginationPageViewModel = paginationPageViewModel;
            viewmodel.Comments = items;
            return(View(viewmodel));
        }
예제 #2
0
        public async Task <IActionResult> AboutFanfic(FanficTagViewModel fanficTagViewModel, int id)
        {
            try
            {
                var model = await _unitOfWork.Fanfic.GetByIdAsync(id);

                var user     = _userManager.GetUserId(HttpContext.User);
                var userName = await _userManager.FindByEmailAsync(User.Identity.Name);

                #region LikeAction

                if (fanficTagViewModel.CommentContent == null)
                {
                    var like = new Like()
                    {
                        ApplicationUserId = user,
                        FanficId          = model.FanficId
                    };
                    var modellike = _unitOfWork.Like.FindLike(model.FanficId, user);
                    if (modellike == null)
                    {
                        _unitOfWork.Like.AddLike(like);
                        await _unitOfWork.SaveAsync();

                        return(Json(new { isValid = true }));
                    }

                    _unitOfWork.Like.RemoveLike(modellike);
                    await _unitOfWork.SaveAsync();

                    return(Json(new { isValid = true }));
                }
                #endregion
                //#region CommentAction

                else
                {
                    var comment = new Comment()
                    {
                        ApplicationUserId = user,
                        FanficId          = model.FanficId,
                        CommentContent    = fanficTagViewModel.CommentContent
                    };
                    _unitOfWork.Comment.AddComment(comment);
                    await _unitOfWork.SaveAsync();

                    return(Json(new { isValid = true }));
                }

                //#endregion
            }
            catch
            {
                return(View("FanficList"));
            }
        }
예제 #3
0
        // GET: TagController
        public async Task <IActionResult> TagList(int page = 1)
        {
            int pageSize         = 12; // количество элементов на странице
            IQueryable <Tag> tag = _unitOfWork.Tag.GetTagsAsync();
            int countElement     = await tag.CountAsync();

            var items = await tag.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync();

            PaginationPageViewModel paginationPageViewModel = new PaginationPageViewModel(countElement, page, pageSize);
            FanficTagViewModel      fanficTagViewModel      = new FanficTagViewModel()
            {
                PaginationPageViewModel = paginationPageViewModel,
                Tags = items
            };

            return(View(fanficTagViewModel));
        }
예제 #4
0
        public async Task <IActionResult> UsersList(int page = 1)
        {
            IQueryable <ApplicationUser> users = _applicationUserDbContext.ApplicationUsers.Include(p => p.Fanfics);
            int pageSize     = 12;
            int countElement = await users.CountAsync();

            var items = await users.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync();

            PaginationPageViewModel paginationPageViewModel = new PaginationPageViewModel(countElement, page, pageSize);
            FanficTagViewModel      fanficTagViewModel      = new FanficTagViewModel()
            {
                PaginationPageViewModel = paginationPageViewModel,
                ApplicationUsers        = items
            };

            return(View(fanficTagViewModel));
        }