using System.Collections.Generic; using System.Web.Routing; using Orchard.Core.Common.Models; using Orchard.Data; using Orchard.Models; using Orchard.Models.Driver; namespace Orchard.Blogs.Models { public class BlogPostProvider : ContentProvider { public override IEnumerable GetContentTypes() { return new[] { BlogPost.ContentType }; } public BlogPostProvider(IRepository repository, IContentManager contentManager) { Filters.Add(new ActivatingFilter("blogpost")); Filters.Add(new ActivatingFilter("blogpost")); Filters.Add(new ActivatingFilter("blogpost")); Filters.Add(new ActivatingFilter("blogpost")); Filters.Add(new StorageFilter(repository)); OnLoaded((context, bp) => bp.Blog = contentManager.Get(bp.Record.Blog.Id)); OnGetItemMetadata((context, bp) => { context.Metadata.DisplayText = bp.Title; context.Metadata.DisplayRouteValues = new RouteValueDictionary( new { area = "Orchard.Blogs", controller = "BlogPost", action = "Item", blogSlug = bp.Blog.Slug, postSlug = bp.Slug }); context.Metadata.EditorRouteValues = new RouteValueDictionary( new { area = "Orchard.Blogs", controller = "BlogPost", action = "Edit", blogSlug = bp.Blog.Slug, postSlug = bp.Slug }); }); } } }