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));
        }
Exemplo n.º 5
0
 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);
            }
        }
Exemplo n.º 7
0
        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);
            }
        }