Exemple #1
0
        public IActionResult AddArticle(ArticleDTO model)
        {
            int memberID = int.Parse(HttpContext.Request.Cookies["ID"]);

            Article article = new Article();
            List <ArticleTopics> articleTopics = new List <ArticleTopics>();

            if (model.ID > 0)
            {
                article = _articleRepository.GetArticleWithTopics(a => a.ID == model.ID);

                article.ArticleTopics.ToList().ForEach(result => articleTopics.Add(result));
                _articleRepository.RemoveTopics(articleTopics);

                article.Title        = model.Title;
                article.Content      = model.Content;
                article.MemberID     = memberID;
                article.ModifiedDate = DateTime.Now;

                article.Image = ConvertFile(model.Image);

                if (model.TopicIDs.Count > 0)
                {
                    articleTopics = new List <ArticleTopics>();
                    foreach (var item in model.TopicIDs)
                    {
                        articleTopics.Add(new ArticleTopics {
                            TopicID = item, ArticleID = model.ID
                        });
                    }
                    _articleRepository.AddTopics(article, articleTopics);
                }
            }
            else
            {
                article.Title    = model.Title;
                article.Content  = model.Content;
                article.Image    = ConvertFile(model.Image);
                article.MemberID = memberID;

                if (model.TopicIDs.Count > 0)
                {
                    foreach (var item in model.TopicIDs)
                    {
                        articleTopics.Add(new ArticleTopics {
                            TopicID = item, ArticleID = model.ID
                        });
                    }
                    article.ArticleTopics = articleTopics;
                }
                _articleRepository.Add(article);
            }

            return(RedirectToAction(nameof(List)));
        }