public ActionResult AddToPost(PostTagViewModel vm)
 {
     try
     {
         _tagRepository.AddTagToPost(vm.CurrentTag.Id, vm.Post.Id);
         return(RedirectToAction("Details", "Post", new { id = vm.Post.Id }));
     }  catch (Exception ex)
     {
         return(View(vm));
     }
 }
예제 #2
0
        public ActionResult TagManager(int id, AddTagPostViewModel vm)
        {
            try
            {
                List <Tag> previouslySelectedTags   = _tagRepo.GetPostTags(id);
                List <int> previouslySelectedTagIds = new List <int>();

                foreach (Tag tag in previouslySelectedTags)
                {
                    previouslySelectedTagIds.Add(tag.Id);
                }



                if (vm.SelectedTagIds != null)
                {
                    foreach (int tagId in vm.SelectedTagIds)
                    {
                        if (!previouslySelectedTagIds.Contains(tagId))
                        {
                            _tagRepo.AddTagToPost(tagId, id);
                        }
                    }
                    foreach (int tagId in previouslySelectedTagIds)
                    {
                        if (!vm.SelectedTagIds.Contains(tagId))
                        {
                            _tagRepo.RemoveTagFromPost(tagId, id);
                        }
                    }
                }
                else
                {
                    foreach (int tagId in previouslySelectedTagIds)
                    {
                        _tagRepo.RemoveTagFromPost(tagId, id);
                    }
                }

                return(RedirectToAction("Details", "Post", new { id = id }));
            }
            catch (Exception)
            {
                return(RedirectToAction("Details", "Post", new { id = id }));
            }
        }
예제 #3
0
 public IActionResult AddTagToPost(Tag tag, int id)
 {
     if (ModelState.IsValid)
     {
         var post = _postRepository.GetPostById(id);
         if (post == null)
         {
             return(NotFound());
         }
         //if (!post.Tags.Contains(tag))
         _tagRepository.AddTagToPost(tag, id);
         return(RedirectToAction("Index"));
     }
     else
     {
         return(View(tag));
     }
 }
        public ActionResult GetTagsForPost(int id, PostDetailsViewModel viewModel)
        {
            List <Tag> postTags = _tagRepository.GetTagPostById(viewModel.Post.Id);

            if (postTags.Exists(tag => tag.Id == viewModel.Tag.Id))
            {
                return(RedirectToAction(nameof(Details), "Post", new { id = viewModel.Post.Id }));
            }
            try
            {
                _tagRepository.AddTagToPost(viewModel.Tag.Id, viewModel.Post);

                return(RedirectToAction(nameof(Details), "Post", new { id = viewModel.Post.Id }));
            }
            catch (Exception ex)
            {
                return(View(viewModel));
            }
        }
예제 #5
0
        //[ValidateAntiForgeryToken]
        public ActionResult Create(PostViewModel postVM)
        {
            if (ModelState.IsValid)
            {
                var data = Mapper.Map <Post>(postVM);
                _postRepository.Add(data);
                _postRepository.SaveChanges();

                var post = _postRepository.Find(x => x.CreatedDate == data.CreatedDate &&
                                                x.Title == data.Title &&
                                                x.Url == data.Url &&
                                                x.CategoryId == data.CategoryId &&
                                                x.Status == data.Status).FirstOrDefault();
                //handle Tags
                var tags = postVM.Tag.Split(',');
                _tagRepository.AddTagToPost(post.Id, tags);

                return(RedirectToAction("Index"));
            }
            var category = _postCategoryRepository.GetAll().Where(x => x.Status == Status.IsAvtive);

            ViewBag.Category = category;
            return(View());
        }
예제 #6
0
 public ActionResult Create(string name, int postId)
 {
     _tagRepository.AddTagToPost(postId, name);
     _tagRepository.SaveChanges();
     return(RedirectToAction("GetTagByPost", new { postId = postId }));
 }