2009-11-21 08:38:41 +08:00
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Linq;
|
|
|
|
using Orchard.Blogs.Models;
|
2009-11-25 09:34:23 +08:00
|
|
|
using Orchard.Core.Common.Records;
|
2009-11-21 08:38:41 +08:00
|
|
|
using Orchard.Data;
|
|
|
|
using Orchard.Models;
|
|
|
|
|
|
|
|
namespace Orchard.Blogs.Services {
|
|
|
|
public class BlogPostService : IBlogPostService {
|
|
|
|
private readonly IContentManager _contentManager;
|
2009-12-04 03:50:57 +08:00
|
|
|
private readonly IRepository<BlogPostRecord> _blogPostRepository;
|
2009-11-21 08:38:41 +08:00
|
|
|
|
2009-12-10 09:49:09 +08:00
|
|
|
public BlogPostService(IContentManager contentManager, IRepository<BlogPostRecord> blogPostRepository) {
|
2009-11-21 08:38:41 +08:00
|
|
|
_contentManager = contentManager;
|
2009-12-04 03:50:57 +08:00
|
|
|
_blogPostRepository = blogPostRepository;
|
2009-11-21 08:38:41 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
public BlogPost Get(Blog blog, string slug) {
|
2009-12-10 09:49:09 +08:00
|
|
|
return _contentManager.Query<BlogPost, BlogPostRecord >()
|
|
|
|
.Join<RoutableRecord>().Where(x => x.Slug == slug)
|
|
|
|
.Join<CommonRecord>().Where(x => x.Container == blog.Record.ContentItemRecord)
|
|
|
|
.List().FirstOrDefault();
|
2009-11-21 08:38:41 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
public IEnumerable<BlogPost> Get(Blog blog) {
|
2009-12-10 09:49:09 +08:00
|
|
|
return _contentManager.Query<BlogPost, BlogPostRecord>()
|
|
|
|
.Join<CommonRecord>().Where(x => x.Container == blog.Record.ContentItemRecord)
|
|
|
|
.OrderByDescending(x=>x.CreatedUtc)
|
|
|
|
.List();
|
2009-11-25 09:34:23 +08:00
|
|
|
}
|
|
|
|
|
2009-12-04 03:50:57 +08:00
|
|
|
public void Delete(BlogPost blogPost) {
|
|
|
|
_blogPostRepository.Delete(blogPost.Record);
|
|
|
|
}
|
2009-11-21 08:38:41 +08:00
|
|
|
}
|
|
|
|
}
|