Example #1
0
        public async Task <IActionResult> Create(ArticleFormObject formObject)
        {
            var article = new Models.Article
            {
                Slug         = sanitizer.Sanitize(formObject.Slug),
                Title        = sanitizer.Sanitize(formObject.Title),
                Description  = sanitizer.Sanitize(formObject.Description),
                ThumbnailUrl = sanitizer.Sanitize(formObject.ThumbnailUrl)
            };
            var index = 0;

            foreach (var chapter in formObject.ArticleChapters)
            {
                article.ArticleChapters.Add(new ArticleChapter
                {
                    Name          = sanitizer.Sanitize(chapter.LinkText),
                    Text          = sanitizer.Sanitize(chapter.Text),
                    ChapterNumber = ++index
                });
            }
            await context.AddAsync(article);

            await context.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Example #2
0
        public async Task <IActionResult> Update(int articleId, ArticleFormObject formObject)
        {
            var article = await context.Articles.Include(a => a.ArticleChapters).FirstOrDefaultAsync(a => a.Id == articleId);

            article.Slug         = sanitizer.Sanitize(formObject.Slug);
            article.Title        = sanitizer.Sanitize(formObject.Title);
            article.Description  = sanitizer.Sanitize(formObject.Description);
            article.ThumbnailUrl = sanitizer.Sanitize(formObject.ThumbnailUrl);
            article.ArticleChapters.Clear();
            var index = 0;

            foreach (var chapter in formObject.ArticleChapters)
            {
                article.ArticleChapters.Add(new Models.ArticleChapter
                {
                    Name          = sanitizer.Sanitize(chapter.LinkText),
                    Text          = chapter.Text,
                    ChapterNumber = ++index
                });
            }
            await context.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }