Exemple #1
0
        public IHttpActionResult PutBlogPost(string slug, dynamic blogPost)
        {
            if (ctx.blogPost.Where(x => x.slug == slug).SingleOrDefault() == null)
            {
                return(BadRequest("Post doesn't exists"));
            }

            blogPostVM model = JsonConvert.DeserializeObject <blogPostVM>(blogPost.blogPost.ToString());

            BlogPost singlePost = ctx.blogPost.Where(x => x.slug == slug).FirstOrDefault();

            singlePost.slug        = String.IsNullOrEmpty(model.title) ? singlePost.slug : helperClasses.createSlug(model.title);
            singlePost.title       = String.IsNullOrEmpty(model.title) ? singlePost.title : model.title;
            singlePost.body        = String.IsNullOrEmpty(model.body) ? singlePost.body : model.body;
            singlePost.description = String.IsNullOrEmpty(model.description) ? singlePost.description : model.description;
            singlePost.updatedAt   = DateTime.Now;

            ctx.SaveChanges();

            return(Ok(viewPosts(singlePost.slug)));
        }
Exemple #2
0
        public IHttpActionResult PostNewPost(dynamic blogPost)
        {
            // deserializing json object into a view model
            blogPostVM model = JsonConvert.DeserializeObject <blogPostVM>(blogPost.blogPost.ToString());

            //function in "blogPostVM" class that checks if everthing is ok
            if (model.CheckRequired())
            {
                return(BadRequest("Invalid data"));
            }
            //helperClass is a static class that contains functions that will manuiplate with data and return things we need
            string newSlug = helperClasses.createSlug(model.title);

            if (ctx.blogPost.Where(x => x.slug == newSlug).SingleOrDefault() != null)
            {
                return(BadRequest("Post already exists"));
            }

            //creating a new list of tags
            List <Tags> tagList = new List <Tags>();

            //adding tags to "Tags" table (if they don't already exist)
            foreach (string s in blogPost.blogPost.tagList)
            {
                Tags tagFromDb = ctx.tag.Where(x => x.tagName == s).SingleOrDefault();
                if (tagFromDb == null)
                {
                    Tags tag = new Tags();
                    tag.slug      = helperClasses.createSlug(s);
                    tag.tagName   = s;
                    tag.createdAt = DateTime.Now;
                    tag.updatedAt = DateTime.Now;
                    ctx.tag.Add(tag);
                    ctx.SaveChanges();
                    tagList.Add(tag);
                }
                else
                {
                    tagList.Add(tagFromDb);
                }
            }
            //creating new post
            BlogPost newPost = new BlogPost();

            newPost.slug        = helperClasses.createSlug(model.title);
            newPost.title       = model.title;
            newPost.description = model.description;
            newPost.body        = model.body;
            newPost.createdAt   = DateTime.Now;
            newPost.updatedAt   = DateTime.Now;
            ctx.blogPost.Add(newPost);

            ctx.SaveChanges();

            //joining tags to post in "BlogPostTags" table (many to many relationship with composite primary key)
            foreach (Tags tag in tagList)
            {
                BlogPostTags blogPostTag = new BlogPostTags();
                blogPostTag.PostId    = newPost.Id;
                blogPostTag.TagId     = tag.Id;
                blogPostTag.createdAt = DateTime.Now;
                blogPostTag.updatedAt = DateTime.Now;
                ctx.blogPostTag.Add(blogPostTag);
            }
            ctx.SaveChanges();

            return(Ok(viewPosts(newPost.slug)));
        }