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)); }
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)); }