public Model.BlogPost GetBySlug(string slug) { var entity = _context.BlogPost.Where(x => x.Slug == slug).FirstOrDefault(); var blogPostsTags = _context.BlogPostTags.Include(x => x.Tag).Include(x => x.Slug).ToList(); Model.BlogPost returnValue = new Model.BlogPost(); if (entity != null) { returnValue.Body = entity.Body; returnValue.CreatedAt = entity.CreatedAt; returnValue.Description = entity.Description; returnValue.Slug = entity.Slug; returnValue.Title = entity.Title; returnValue.UpdatedAt = entity.UpdatedAt; foreach (var tags in blogPostsTags) { if (tags.Slug.Slug == entity.Slug) { returnValue.Tags.Add(tags.Tag.Name); } } } return(returnValue); }
public Model.BlogPost Insert(BlogPostsCreateRequest request) { var entity = _mapper.Map <Database.BlogPost>(request); Model.BlogPost returnValue = new Model.BlogPost() { Body = entity.Body, CreatedAt = DateTime.Now, Description = entity.Description, Title = entity.Title, UpdatedAt = DateTime.Now, Tags = request.Tags }; List <BlogPost> allPosts = _context.BlogPost.ToList(); int brojac = 0; foreach (var item in allPosts) { if (item.Title == entity.Title) { brojac++; } } brojac++; entity.Slug = Slugify(entity.Title + " " + brojac.ToString()); entity.CreatedAt = DateTime.Now; entity.UpdatedAt = DateTime.Now; _context.BlogPost.Add(entity); _context.SaveChanges(); returnValue.Slug = entity.Slug; foreach (var t in request.Tags) { Database.Tags temp = new Database.Tags() { Name = t }; _context.Tags.Add(temp); _context.SaveChanges(); _context.BlogPostTags.Add(new BlogPostTags() { SlugId = entity.Id, TagId = temp.Id }); _context.SaveChanges(); } return(returnValue); }
public Model.BlogPostCount Get(BlogPostsSearchRequest_byTag searchRequest) { var query = _context.Tags.AsQueryable(); if (!string.IsNullOrWhiteSpace(searchRequest?.TagName)) { query = query.Where(x => x.Name == searchRequest.TagName); } var entities = query.ToList(); //filtered tag list var blogPostTagsQuery = _context.BlogPostTags.AsQueryable(); if (entities.Count > 0) { foreach (var x in entities) { blogPostTagsQuery = blogPostTagsQuery.Where(y => y.TagId == x.Id); } } List <BlogPostTags> blogPostTags = new List <BlogPostTags>(); if (entities.Count > 0) { blogPostTags = blogPostTagsQuery.ToList(); } List <Model.BlogPost> Posts = new List <Model.BlogPost>(); var blog_tags = _context.BlogPostTags.Include(x => x.Slug).ToList(); var tags = _context.Tags.ToList(); Model.BlogPostCount PostCount = new Model.BlogPostCount(); if (blogPostTags.Count > 0) { var posts = _context.BlogPost.ToList(); List <Database.BlogPost> temp = new List <Database.BlogPost>(); foreach (var blogTags in blogPostTags) { foreach (var p in posts) { if (p.Slug == blogTags.Slug.Slug) { temp.Add(p); } } } foreach (var x in temp) { Model.BlogPost blogPost = new Model.BlogPost(); blogPost.Slug = x.Slug; blogPost.Title = x.Title; blogPost.Description = x.Description; blogPost.Body = x.Body; blogPost.CreatedAt = x.CreatedAt; blogPost.UpdatedAt = x.UpdatedAt; foreach (var y in blog_tags) { foreach (var z in tags) { if (x.Slug == y.Slug.Slug && y.TagId == z.Id) { blogPost.Tags.Add(z.Name); } } } Posts.Add(blogPost); } } if (searchRequest.TagName == null) { var posts = _context.BlogPost.ToList(); foreach (var x in posts) { Model.BlogPost blogPost = new Model.BlogPost(); blogPost.Slug = x.Slug; blogPost.Title = x.Title; blogPost.Description = x.Description; blogPost.Body = x.Body; blogPost.CreatedAt = x.CreatedAt; blogPost.UpdatedAt = x.UpdatedAt; if (blog_tags.Count() > 0) { foreach (var y in blog_tags) { foreach (var z in tags) { if (x.Slug == y.Slug.Slug && y.TagId == z.Id) { blogPost.Tags.Add(z.Name); } } } } Posts.Add(blogPost); } } Posts.OrderBy(x => x.UpdatedAt); //most recent blog posts PostCount.BlogPost = Posts; PostCount.PostsCount = Posts.Count(); return(PostCount); }
public BlogPostListItemViewModel(Model.BlogPost model) { ViewData = model; }
public BlogPostViewModel(Model.BlogPost model) { ViewData = model; }