コード例 #1
0
        public async Task <IActionResult> PostArticle(NewArticleVM vm)
        {
            if (ModelState.IsValid)
            {
                string currentUserId = await OnGetSesstion();

                var article = _mapper.Map <Article>(vm);
                article.CreateTime = DateTime.Now;
                article.Status     = "active";
                article.OriginalId = 0;
                article.UserId     = currentUserId;
                _context.Article.Add(article);
                _context.SaveChanges();
                string[] tagArray = vm.Tags.Split(',');
                foreach (string tag in tagArray)
                {
                    var tagFromDB = _context.SkillTag.Where(x => x.SkillName == tag.ToLower()).SingleOrDefault();
                    if (tagFromDB == null)
                    {
                        SkillTag sktag = new SkillTag
                        {
                            ApprovedStatus = false,
                            SkillName      = tag.ToLower(),
                            TimeApproved   = DateTime.Now,
                            UserId         = currentUserId
                        };
                        _context.SkillTag.Add(sktag);
                        _context.SaveChanges();
                        ArticleTag articleTag = new ArticleTag
                        {
                            TagId     = sktag.SkillTagId,
                            ArticleId = article.Id
                        };
                        _context.ArticleTag.Add(articleTag);
                        _context.SaveChanges();
                    }
                    else
                    {
                        ArticleTag articleTag = new ArticleTag
                        {
                            TagId     = tagFromDB.SkillTagId,
                            ArticleId = article.Id
                        };
                        _context.ArticleTag.Add(articleTag);
                        _context.SaveChanges();
                    }
                }//Foreach for tags
                ArticleCategory articleCategory = new ArticleCategory
                {
                    ArticleId  = article.Id,
                    CategoryId = vm.CategoryId
                };
                _context.ArticleCategory.Add(articleCategory);
                article.OriginalId = article.Id;
                _context.SaveChanges();
                return(RedirectToAction($"ArticleSingle", new { id = article.Id, title = article.Title }));
            }
            return(View(vm));
        }
コード例 #2
0
        public async Task <IActionResult> Edit(int Id)
        {
            string currentUserId = await OnGetSesstion();

            var article = _context.Article.Where(x => x.Id == Id && x.UserId == currentUserId).SingleOrDefault();

            if (article == null)
            {
                return(NotFound());
            }
            NewArticleVM    articleVM  = _mapper.Map <NewArticleVM>(article);
            List <Category> categories = _context.Category.ToList();
            var             tags       = _context.ArticleTag.Where(a => a.ArticleId == articleVM.Id).ToList();
            string          tagName    = null;

            foreach (var tag in tags)
            {
                tagName += _context.SkillTag.Where(b => b.SkillTagId == tag.TagId).Select(c => c.SkillName).SingleOrDefault();
                tagName += ", ";
            }
            ViewBag.Tag        = tagName;
            ViewBag.Categories = new SelectList(categories, "Id", "Title");
            return(View(articleVM));
        }