public ActionResult SubmitForm(ArticleTopic cate, string keyValue) { if (!(cate.ParentId.IsEmpty() || cate.ParentId == "-1")) { return(Error("只能添加/修改顶级专题(即专题分类)")); } if (!string.IsNullOrWhiteSpace(keyValue)) { var data = _ArticleTopicService.GetForm(keyValue); if (data == null) { return(Error("该分组不存在,请刷新重试!")); } data.Title = cate.Title; data.EnabledMark = cate.EnabledMark; data.Description = cate.Description; data.SortCode = cate.SortCode; data.ShortTitle = cate.ShortTitle; data.ParentId = null; data.CoverUrl = cate.CoverUrl; data.BigCoverUrl = cate.BigCoverUrl; cate = data; } cate.TopicStatus = (int)TopicStatus.Audited; _ArticleTopicService.SubmitForm(cate); return(Success("操作成功。")); }
public IHttpActionResult Articles(ArticleTopic topic) { try { if (!ModelState.IsValid) { return(BadRequest("Passed information isn't valid.")); } var da = new DataAccess(); var arts = da.GetArticles(null, topic.Topic); if (arts == null) { return(NotFound()); } // Let's convert the article objects var articles = Mapper.MapArticle(arts); if (articles == null) { throw new NotImplementedException(); } return(Ok(articles)); } catch (Exception ex) { logger.Error(ex, "Attempt to get articles from topic " + topic.Topic + " failed: " + ex.Message); return(BadRequest("Something went wrong while saving comment.")); } }
public async Task <IActionResult> Edit(int id, [Bind("ArticleID,Tittle,Content,ReadingTime,NumberOfClick,UserID,IsActive,CreatedDate,ModifiedDate")] Article article, int[] checkedId) { if (id != article.ArticleID) { return(NotFound()); } if (ModelState.IsValid) { try { articleRep.UpdateArticle(article); await _context.SaveChangesAsync(); ArticleTopic articleTopic = new ArticleTopic(); foreach (var topicID in checkedId) { articleTopic.ArticleID = article.ArticleID; articleTopic.TopicID = topicID; articleRep.AddArticleTopic(articleTopic); } } catch (DbUpdateConcurrencyException) { if (!ArticleExists(article.ArticleID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["UserID"] = new SelectList(_context.Users, "UserID", "UserID", article.UserID); return(View(article)); }
public async Task <IActionResult> Create(Article article, int[] checkedId) { if (checkedId.Length > 0) { string content = HttpContext.Request.Form["Content"]; if (articleRep.IsArticleRegister(article.Tittle) == true) { return(Content("This title has been used before. You cannot use this title.")); } else if (ModelState.IsValid) { article.UserID = userRep.GetUserByMail(Request.Cookies["EMail"]).UserID; article.Content = HtmlToPlainText(content); articleRep.AddArticle(article); await _context.SaveChangesAsync(); ArticleTopic articleTopic = new ArticleTopic(); foreach (var topicID in checkedId) { articleTopic.ArticleID = article.ArticleID; articleTopic.TopicID = topicID; articleRep.AddArticleTopic(articleTopic); } return(RedirectToAction(nameof(Index))); } } else { ViewBag.Message = "Please choose a topic name."; } return(View(article)); }
public bool AddArticleTopic(ArticleTopic articleTopic) { articleTopic.IsActive = true; ctx.ArticleTopics.Add(articleTopic); return(ctx.SaveChanges() > 0); }
private HttpRequestMessage CreateSearchRequestToService(Search search) { try { HttpRequestMessage requestMessage = CreateRequestToService(HttpMethod.Post, "api/Data/" + search.Criteria); if (search.Criteria == "Title") { var at = new ArticleTitle() { Title = search.SearchString }; requestMessage.Content = new ObjectContent <ArticleTitle>(at, new JsonMediaTypeFormatter()); } else if (search.Criteria == "Topic") { var at = new ArticleTopic() { Topic = search.SearchString }; requestMessage.Content = new ObjectContent <ArticleTopic>(at, new JsonMediaTypeFormatter()); } else if (search.Criteria == "Source") { var at = new ArticleSource() { Name = search.SearchString }; requestMessage.Content = new ObjectContent <ArticleSource>(at, new JsonMediaTypeFormatter()); } else if (search.Criteria == "Country") { var at = new ArticleCountry() { Country = search.SearchString }; requestMessage.Content = new ObjectContent <ArticleCountry>(at, new JsonMediaTypeFormatter()); } else if (search.Criteria == "Language") { var at = new ArticleLanguage() { Language = search.SearchString }; requestMessage.Content = new ObjectContent <ArticleLanguage>(at, new JsonMediaTypeFormatter()); } else if (search.Criteria == "Date") { var at = new ArticlePulished() { PublishedDate = Convert.ToDateTime(search.SearchString) }; requestMessage.Content = new ObjectContent <ArticlePulished>(at, new JsonMediaTypeFormatter()); } return(requestMessage); } catch (Exception ex) { // log the error here logger.Error(ex.Message); return(null); } }
public int CreateOrUpdate(ArticleCreateOrUpdateRequestDTO request) { if (!_snsdbContext.Articles.Any(x => x.Id == request.Id)) { Article article = new Article { Title = request.Title, AccountId = _identityUser.Id, ContentType = ContentTypeEnum.Article.ToValue() }; ArticleContent content = new ArticleContent { Body = request.Body }; Topic topic = _snsdbContext.Topics.AsNoTracking().FirstOrDefault(x => x.Name == request.TopicName); _snsdbContext.ExecuteTransaction(() => { // 文章 _snsdbContext.Articles.Add(article); _snsdbContext.SaveChanges(); // 内容 content.ArticleId = article.Id; _snsdbContext.ArticleContents.Add(content); _snsdbContext.SaveChanges(); // 话题 if (topic == null) { topic = new Topic { Name = request.TopicName }; _snsdbContext.Topics.Add(topic); _snsdbContext.SaveChanges(); } // 文章|话题 关系 ArticleTopic articleTopic = new ArticleTopic { ArticleId = article.Id, TopicId = topic.Id }; _snsdbContext.ArticleTopics.Add(articleTopic); _snsdbContext.SaveChanges(); }); return(article.Id); } else { // 文章 Article article = _snsdbContext.Articles.Find(request.Id); article.Title = request.Title; article.LastUpdateTime = DateTime.Now; // 内容 ArticleContent articleContent = _snsdbContext.ArticleContents.FirstOrDefault(x => x.ArticleId == article.Id); if (articleContent != null) { articleContent.Body = request.Body; } // 话题 List <ArticleTopic> articleTopics = _snsdbContext.ArticleTopics.Where(x => x.ArticleId == article.Id).ToList(); _snsdbContext.ArticleTopics.RemoveRange(articleTopics); // 先清空老的关系 Topic topic = _snsdbContext.Topics.AsNoTracking().FirstOrDefault(x => x.Name == request.TopicName); _snsdbContext.ExecuteTransaction(() => { if (topic == null) { topic = new Topic { Name = request.TopicName }; _snsdbContext.Topics.Add(topic); _snsdbContext.SaveChanges(); } // 文章|话题 关系 ArticleTopic articleTopic = new ArticleTopic { ArticleId = article.Id, TopicId = topic.Id }; _snsdbContext.ArticleTopics.Add(articleTopic); _snsdbContext.SaveChanges(); }); return(article.Id); } }