public ActionResult Edit(int id) { News dbNews = _newsRepository.GetById(id); #region Tag var pullTags = dbNews.Tags.Select(x => x.TagName).ToArray(); NewsTag newsTag = new NewsTag { News = dbNews, Tags = _tagRepository.GetAll(), PullTags = pullTags }; StringBuilder strBuilder = new StringBuilder(); foreach (var tag in newsTag.PullTags) { strBuilder.Append(tag); strBuilder.Append(","); } newsTag.TagName = strBuilder.ToString(); #endregion if (dbNews == null) { throw new Exception("News not found"); } else { ListCategories(); return(View(newsTag)); } }
//private void CommentData(News news) //{ // var allTags = _context.Tag; // var instructorCourses = new HashSet<int>(news.Comment.Select(c => c.UserId)); // var viewModel = new List<NewsTagView>(); // foreach (var tag in allTags) // { // viewModel.Add(new NewsTagView // { // TagID = tag.TagId, // TagName = tag.TagName, // Checked = instructorCourses.Contains(tag.TagId) // }); // } // ViewData["Tags"] = viewModel; //} //private void ChannelsDropDownList(object selected = null) //{ // var query = from d in _context.Channel // select d; // ViewBag.Channel = new SelectList(query.AsNoTracking(), "ChannelId", "ChannelName", selected); //} private void UpdateNewsTags(string[] selected, News newsToUpdate) { if (selected == null) { newsToUpdate.NewsTag = new List <NewsTag>(); return; } var selectedHS = new HashSet <string>(selected); var newsTag = new HashSet <int> (newsToUpdate.NewsTag.Select(c => c.Tag.TagId)); foreach (var tag in _context.Tag) { if (selectedHS.Contains(tag.TagId.ToString())) { if (!newsTag.Contains(tag.TagId)) { newsToUpdate.NewsTag.Add(new NewsTag { NewsId = newsToUpdate.NewsId, TagId = tag.TagId }); } } else { if (newsTag.Contains(tag.TagId)) { NewsTag tagToRemove = newsToUpdate.NewsTag.FirstOrDefault(i => i.TagId == tag.TagId); _context.Remove(tagToRemove); } } } }
public List <NewsPost> Get(NewsTag tag) { return(_context.NewsPosts .Include(p => p.Author) .Where(n => n.NewsTag == tag) .ToList()); }
public async Task <IActionResult> PutNewsTag(int id, NewsTag newsTag) { if (id != newsTag.TagId) { return(BadRequest()); } _context.Entry(newsTag).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!NewsTagExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task AddToTagAsync(News news, string tagName) { if (news == null) { throw new ArgumentNullException(nameof(news)); } if (string.IsNullOrWhiteSpace(tagName)) { throw new ArgumentException("Value cannot be null or empty. Null or empty error message.", nameof(tagName)); } var newsTags = dbContext.NewsTags; var tags = dbContext.Tags; var tagEntity = await tags.SingleOrDefaultAsync(t => t.Title.ToUpper() == tagName.ToUpper()); if (tagEntity == null) { tagEntity = new Tag { Title = tagName }; tags.Add(tagEntity); } var nt = new NewsTag { NewsId = news.Id, TagId = tagEntity.Id }; await newsTags.AddAsync(nt); }
public void Add(NewsViewModel viewModel) { viewModel = Tags(viewModel); var result = mapper.Map <News>(viewModel); var category = unitOfWork.Get <Category>(result.CategoryId.GetValueOrDefault()); result.Category = category; var author = unitOfWork.Get <User>(result.AuthorId.GetValueOrDefault()); result.Author = author; unitOfWork.Add(result); result.NewsTags = new List <NewsTag>(); if (viewModel.TagsIds != null) { foreach (int tagId in viewModel.TagsIds) { var newsTag = new NewsTag() { NewsId = result.Id, TagId = tagId }; result.NewsTags.Add(newsTag); unitOfWork.Add <NewsTag>(newsTag); } } unitOfWork.SaveChanges(); }
public ActionResult DeleteConfirmed(int id) { NewsTag newsTag = db.NewsTags.Find(id); db.NewsTags.Remove(newsTag); db.SaveChanges(); return(RedirectToAction("Index")); }
private void CreateNewsTag(NewsTag newsTag) { using (var unitOfWork = new UnitOfWork(new DbContextFactory <NesDbContext>())) { unitOfWork.GetRepository <NewsTag>().Create(newsTag); unitOfWork.Save(); } }
public IActionResult Add([FromBody] AddNewsViewModel newsItem) { if (newsItem == null) { return(BadRequest("News is null")); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } newsItem.News.CreatedDate = DateTime.Now; newsItem.News.UpdatedDate = DateTime.Now; if (newsItem.News.Category?.Id != null) { Category c = _categoryRepository.GetById((int)newsItem.News.Category.Id); newsItem.News.Category = c; } // Förhindra att ny kategori skapas om ingen anges if (newsItem.News.Category?.Id == null) { newsItem.News.Category = null; } //creates all tags and the connection between tags and news News thisNews = _newsRepository.Add(newsItem.News); foreach (var tag in newsItem.Tags) { if (tag.Id == 0) { var newTag = _tagRepository.Create(tag); var tagConnection = new NewsTag { News = thisNews, NewsId = thisNews.Id, Tag = newTag, TagId = newTag.Id }; thisNews.NewsTags.Add(tagConnection); } else { var alreadyAddedTag = _tagRepository.GetById(tag.Id); var tagConnection = new NewsTag { News = thisNews, NewsId = thisNews.Id, Tag = alreadyAddedTag }; thisNews.NewsTags.Add(tagConnection); } } //updates the news to add the connection between tags and this news _newsRepository.Update(thisNews); return(Ok()); }
public void InsertNewsTag(long newsId, string tagId) { var newsTag = new NewsTag(); newsTag.NewsID = newsId; newsTag.TagID = tagId; db.NewsTags.Add(newsTag); db.SaveChanges(); }
/// <summary> /// Update news tags /// </summary> /// <param name="news">News for update</param> /// <param name="newsTags">News tags</param> public virtual void UpdateNewsTags(NewsItem news, string[] newsTags) { if (news == null) { throw new ArgumentNullException("news"); } //news tags var existingNewsTags = news.NewsTags.ToList(); var newsTagsToRemove = new List <NewsTag>(); foreach (var existingNewsTag in existingNewsTags) { var found = false; foreach (var newNewsTag in newsTags) { if (existingNewsTag.Name.Equals(newNewsTag, StringComparison.InvariantCultureIgnoreCase)) { found = true; break; } } if (!found) { newsTagsToRemove.Add(existingNewsTag); } } foreach (var newsTag in newsTagsToRemove) { news.NewsTags.Remove(newsTag); _newsService.UpdateNews(news); } foreach (var newsTagName in newsTags) { NewsTag newsTag; var newsTag2 = GetNewsTagByName(newsTagName); if (newsTag2 == null) { //add new news tag newsTag = new NewsTag { Name = newsTagName }; InsertNewsTag(newsTag); } else { newsTag = newsTag2; } if (!news.NewsTagExists(newsTag.Id)) { news.NewsTags.Add(newsTag); _newsService.UpdateNews(news); } } }
public ActionResult Edit([Bind(Include = "TagId,TagName")] NewsTag newsTag) { if (ModelState.IsValid) { db.Entry(newsTag).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(newsTag)); }
public ActionResult Edit(NewsTag newsTag) { if (ModelState.IsValid) { db.Entry(newsTag).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index", "NewsTag")); } return(View()); }
public ActionResult Create([Bind(Include = "TagId,TagName")] NewsTag newsTag) { if (ModelState.IsValid) { db.NewsTags.Add(newsTag); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(newsTag)); }
public ActionResult Create(NewsTag newsTag) { if (ModelState.IsValid) { db.NewsTags.Add(newsTag); db.SaveChanges(); return(RedirectToAction("Index", "NewsTag")); } return(View()); }
public bool DeleteTagNews(int tagId) { bool check = false; NewsTag newsTag = _unitOfWork.GetRepository <NewsTag>().FindById(tagId); if (newsTag != null) { _unitOfWork.GetRepository <NewsTag>().Delete(newsTag); _unitOfWork.Commit(); check = true; } return(check); }
public void Attach_Old_Relationship_And_Create_New_Tags() { // Assign var tags = new[] { "Test", "Test2" }; var faq = new Faq { Id = 77 }; var news = new News { Id = 33 }; var faqTag = new FaqTag { FaqId = 77, Faq = faq, TagId = 65 }; var newsTag = new NewsTag { NewsId = 33, News = news, TagId = 65 }; var tag = new Tag { Id = 65, Name = "Test", NewsTags = new List <NewsTag> { newsTag }, FaqTags = new List <FaqTag> { faqTag }, }; faqTag.Tag = tag; newsTag.Tag = tag; // Act TagHelpers.SetTags <News, NewsTag>(tags, news, new List <Tag> { tag }); TagHelpers.SetTags <Faq, FaqTag>(tags, faq, new List <Tag> { tag }); // Assert Assert.Equal(33, news.NewsTags.Single(nt => nt.Tag.Name == "Test").NewsId); Assert.Equal(77, faq.FaqTags.Single(nt => nt.Tag.Name == "Test").FaqId); Assert.Equal(65, faq.FaqTags.Single(nt => nt.Tag.Name == "Test").TagId); Assert.Equal(65, news.NewsTags.Single(nt => nt.Tag.Name == "Test").TagId); Assert.Equal(0, faq.FaqTags.Single(nt => nt.Tag.Name == "Test2").Tag.Id); Assert.Equal(0, news.NewsTags.Single(nt => nt.Tag.Name == "Test2").Tag.Id); }
// GET: NewsTags/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } NewsTag newsTag = db.NewsTags.Find(id); if (newsTag == null) { return(HttpNotFound()); } return(View(newsTag)); }
/// <summary> /// Updates the news tag /// </summary> /// <param name="newsTag">News tag</param> public virtual void UpdateNewsTag(NewsTag newsTag) { if (newsTag == null) { throw new ArgumentNullException("newsTag"); } _newsTagRepository.Update(newsTag); //cache _cacheManager.RemoveByPattern(NEWSTAG_PATTERN_KEY); //event notification _eventPublisher.EntityUpdated(newsTag); }
public ActionResult Edit(int?id) { if (id == null) { return(HttpNotFound("ID is missing")); } NewsTag newsTag = db.NewsTags.Find(id); if (newsTag == null) { return(HttpNotFound("ID was not found")); } return(View(newsTag)); }
public bool CreateTagNews(NewsTagModel newsTagModel) { bool check = false; if (newsTagModel != null) { NewsTag newTag = new NewsTag() { TagId = newsTagModel.TagId, NewsId = newsTagModel.NewsId, }; _unitOfWork.GetRepository <NewsTag>().Insert(newTag); _unitOfWork.Commit(); check = true; } return(check); }
/// <summary> /// 添加资讯 /// </summary> /// <param name="saveModel"></param> /// <returns></returns> public override WebResponseContent Add(SaveModel saveModel) { WebResponseContent responseContent = WebResponseContent.Instance; AddOnExecuted = (News news, object list) => { if (news.Tags.IsNullOrEmpty()) { return(responseContent.OK()); } string[] tags = news.Tags?.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (tags.Length > 5) { return(responseContent.Error("标签不能超过5个")); } if (tags.Length > 0) { for (int i = 0; i < tags.Length; i++) { var tagModel = repository.DbContext.Set <NewsTag>().Where(m => m.Tag == tags[i]).FirstOrDefault(); if (tagModel == null) { tagModel = new NewsTag() { Tag = tags[i], UseCount = 1 }; tagModel.SetCreateDefaultVal(); repository.DbContext.Set <NewsTag>().Add(tagModel); } else { tagModel.UseCount += 1; repository.DbContext.Set <NewsTag>().Update(tagModel); } } if (repository.DbContext.SaveChanges() > 0) { return(responseContent.OK("创建成功.")); } } news.SetModifyDefaultVal(); return(responseContent.OK()); }; return(base.Add(saveModel).OK("已提交,正在审核中..")); }
public async Task UpdateTagsAsync(int id, string content) { foreach (var commonTag in CommonTags) { if (content.Contains(commonTag)) { var tagId = await this.GetTagId(commonTag); if (!this.newsTagsRepository.AllWithDeleted().Any(x => x.NewsId == id && x.TagId == tagId)) { var newsTag = new NewsTag { NewsId = id, TagId = tagId }; await this.newsTagsRepository.AddAsync(newsTag); } } } await this.newsTagsRepository.SaveChangesAsync(); }
public async Task <ActionResult <NewsTag> > PostNewsTag(NewsTag newsTag) { _context.NewsTag.Add(newsTag); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (NewsTagExists(newsTag.TagId)) { return(Conflict()); } else { throw; } } return(CreatedAtAction("GetNewsTag", new { id = newsTag.TagId }, newsTag)); }
public static NewsTag ToEntity(this NewsTagModel model, NewsTag destination) { return(model.MapTo(destination)); }
public static NewsTagModel ToModel(this NewsTag entity) { return(entity.MapTo <NewsTag, NewsTagModel>()); }