public async Task <ActionResult <BlogPostVM> > Insert(BlogPostAddVM request) { var result = await _blogPostService.Insert(request); if (result == null) { return(BadRequest()); } return(Ok(result)); }
public async Task <BlogPostVM> Insert(BlogPostAddVM request) { using var db = new SQLiteDBContext(); var result = mapper.Map <BlogPost>(request); SlugHelper helper = new SlugHelper(); result.Slug = helper.GenerateSlug(result.Title); result.CreatedAt = DateTime.UtcNow; await db.BlogPosts.AddAsync(result); await db.SaveChangesAsync(); #region MappingTagsToDB //If tags are added check if they exist in db, if not save them //Add BlogPostTags middle table elements and save them to db string[] tagList = null; if (request.TagList != null && request.TagList.Length > 0) { int tagCount = request.TagList.Length; tagList = new string[tagCount]; for (int i = 0; i < tagCount; i++) { tagList[i] = request.TagList[i]; // If the Tag is not in the database persist it if (await db.Tags.FindAsync(request.TagList[i]) == null) { await tagService.Insert(new Tag() { Name = request.TagList[i] }); } //Add tags to post and save to db BlogPostTag temp = new BlogPostTag() { TagId = request.TagList[i], BlogPostId = result.Slug }; await db.BlogPostTags.AddAsync(temp); } await db.SaveChangesAsync(); } #endregion var response = mapper.Map <BlogPostVM>(result); response.TagList = tagList; return(response); }