public async Task <IActionResult> Edit(int id, [Bind("ArticleId,KeywordId")] ArticleKeyword articleKeyword) { if (id != articleKeyword.ArticleId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(articleKeyword); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ArticleKeywordExists(articleKeyword.ArticleId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["ArticleId"] = new SelectList(_context.Article, "Id", "Name", articleKeyword.ArticleId); ViewData["KeywordId"] = new SelectList(_context.Keyword, "Id", "Name", articleKeyword.KeywordId); return(View(articleKeyword)); }
public async Task <IActionResult> Create([Bind("ArticleId,KeywordId")] ArticleKeyword articleKeyword) { if (ModelState.IsValid) { _context.Add(articleKeyword); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["ArticleId"] = new SelectList(_context.Article, "Id", "Name", articleKeyword.ArticleId); ViewData["KeywordId"] = new SelectList(_context.Keyword, "Id", "Name", articleKeyword.KeywordId); return(View(articleKeyword)); }
public void UpdateArticleKeywords(Article incoming) { List <ArticleKeyword> currentKeywords = _unitOfWork.ArticleKeyWordRepository.Find(x => x.Article == incoming).ToList(); currentKeywords.Select(x => { ArticleKeyword inKey = getItemFrom(x.Id, incoming.Keywords); if (inKey != null && inKey.Keyword != x.Keyword) { x.Keyword = inKey.Keyword; } return(x); }).ToList(); var newRecord = incoming.Keywords.Where(x => x.Id == 0).ToList(); if (newRecord.Count > 0) { var article = _unitOfWork.ArticleRepository.GetById(incoming.Id); newRecord.Where(x => x.Article == null).Select(x => x.Article = article).ToList(); _unitOfWork.ArticleKeyWordRepository.AddRange(newRecord); } }