Exemple #1
0
        public async Task <IActionResult> Modify(int id)
        {
            Post post = await _blogUnitOfWork.Posts.SearchFor(p => p.Id == id)
                        .Include(p => p.PostTags)
                        .ThenInclude(e => e.Tag)
                        .FirstOrDefaultAsync();

            PostTagNameViewModel postTagNameViewModel = new PostTagNameViewModel()
            {
                Post = post, TagNames = PostTagsToStringHelper(post.PostTags)
            };

            return(View(postTagNameViewModel));
        }
Exemple #2
0
        public async Task <IActionResult> Add(PostTagNameViewModel postTagNameViewModel)
        {
            Post post = postTagNameViewModel.Post;

            ApplicationUser author = await _securityFacade.GetCurrentUser();

            post.PublicationDate = DateTime.Now;
            post.AuthorName      = author.Name;
            post.AuthorUserId    = author.Id;
            _blogUnitOfWork.Posts.Insert(post);

            AddTags(post, postTagNameViewModel.TagNames);

            await _blogUnitOfWork.SaveAsync();

            return(RedirectToAction("Index"));
        }
Exemple #3
0
        public async Task <IActionResult> Modify(PostTagNameViewModel postTagNameViewModel)
        {
            Post post = await _blogUnitOfWork.Posts.SearchFor(p => p.Id == postTagNameViewModel.Post.Id)
                        .Include(p => p.PostTags)
                        .ThenInclude(pt => pt.Tag)
                        .SingleOrDefaultAsync();

            var authorized = await _securityFacade.IsAuthorized(post, BlogConstants.ModifyActionName);

            if (authorized)
            {
                _blogUnitOfWork.PostTags.DeleteMany(post.PostTags);
                await _blogUnitOfWork.SaveAsync();

                post.Title   = postTagNameViewModel.Post.Title;
                post.Content = postTagNameViewModel.Post.Content;

                _blogUnitOfWork.Posts.Update(post);
                AddTags(post, postTagNameViewModel.TagNames);
                await _blogUnitOfWork.SaveAsync();
            }

            return(RedirectToAction("Index"));
        }