using System.Collections.Generic; using System.Linq; using JetBrains.Annotations; using Orchard.Blogs.Models; using Orchard.Blogs.Routing; using Orchard.ContentManagement; using Orchard.ContentManagement.Aspects; using Orchard.Core.Routable.Models; namespace Orchard.Blogs.Services { [UsedImplicitly] public class BlogService : IBlogService { private readonly IContentManager _contentManager; private readonly IBlogSlugConstraint _blogSlugConstraint; public BlogService(IContentManager contentManager, IBlogSlugConstraint blogSlugConstraint) { _contentManager = contentManager; _blogSlugConstraint = blogSlugConstraint; } public BlogPart Get(string path) { return _contentManager.Query() .Join().Where(rr => rr.Path == path) .List().FirstOrDefault(); } public ContentItem Get(int id, VersionOptions versionOptions) { return _contentManager.Get(id, versionOptions); } public IEnumerable Get() { return Get(VersionOptions.Published); } public IEnumerable Get(VersionOptions versionOptions) { return _contentManager.Query(versionOptions) .Join() .OrderBy(br => br.Title) .List(); } public void Delete(ContentItem blog) { _contentManager.Remove(blog); _blogSlugConstraint.RemoveSlug(blog.As().Path); } } }