示例#1
0
        public ActionResult Edit(BlogPostVM editedBlogPost)
        {
            if (ModelState.IsValid)
            {
                _blogPostRepo.EditBlogPost(editedBlogPost.BlogPost);
                var blogPostID = editedBlogPost.BlogPost.BlogPostId;
                _blogCategoryRepo.DeleteCategoryFromBlogPost(blogPostID);

                foreach (var category in editedBlogPost.CategoryArray)
                {
                    _blogCategoryRepo.AddCategoryToBlog(blogPostID, int.Parse(category));
                }

                string[] postTags = editedBlogPost.Tag.TagName.ToLower().Split(' ');
                editedBlogPost.Tags = _tagRepo.SelectAllTags(postTags);
                _blogTagRepo.DeleteTagFromBlog(blogPostID);
                foreach (var tag in editedBlogPost.Tags)
                {
                    _blogTagRepo.AddTagToBlog(blogPostID, tag.TagId);
                }

                return(RedirectToAction("Index", "Home"));
            }
            return(View(editedBlogPost));
        }
        public ActionResult CreateOrEditBlogPost(Int32?id, String title, String[] authors, String content)
        {
            if (String.IsNullOrEmpty(title))
            {
                ModelState.AddModelError(nameof(title), "Title must have a value.");
            }

            if (String.IsNullOrEmpty(content))
            {
                ModelState.AddModelError(nameof(content), "Content must have a value.");
            }

            if (authors == null || authors.Length == 0)
            {
                ModelState.AddModelError(nameof(authors), "At least one author must be specified.");
            }

            if (!ModelState.IsValid)
            {
                return(View("BlogPostDetails", new BlogPostDetailsViewModel(null)));
            }

            if (!id.HasValue)
            {
                repository.AddBlogPost(title, authors, content);
            }
            else
            {
                repository.EditBlogPost(id.Value, title, authors, content);
            }

            return(RedirectToAction("Index"));
        }
示例#3
0
        public void ProcessEditedBlogPost(BlogPost editedBlogPost)
        {
            editedBlogPost.EditDate = DateTime.Now;
            _blogPostRepo.EditBlogPost(editedBlogPost);
            int blogPostID = editedBlogPost.BlogPostId;

            // remove all existing Categories from blog post
            _blogCategoryRepo.DeleteCategoryFromBlogPost(blogPostID);

            // add selected categories to this blog post
            foreach (var category in editedBlogPost.AssignedCategories)
            {
                _blogCategoryRepo.AddCategoryToBlog(blogPostID, category.CategoryId);
            }

            List <string> justTagNames = new List <string>();

            foreach (var tag in editedBlogPost.AssignedTags)
            {
                justTagNames.Add(tag.TagName);
            }
            // add newly created tag names to tag repo, assigns them valid tagIDs, returns list of valid Tag objects
            editedBlogPost.AssignedTags = _tagRepo.AddAllTags(justTagNames);
            // remove all assigned tags to this blogPost
            _blogTagRepo.DeleteTagFromBlog(blogPostID);
            // assign newly created Tags to this blog post
            foreach (var tag in editedBlogPost.AssignedTags)
            {
                _blogTagRepo.AddTagToBlog(blogPostID, tag.TagId);
            }
        }