Some renames and cleanup related to feed code

--HG--
extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4045702
This commit is contained in:
loudej
2010-01-19 18:27:51 +00:00
parent 507f3ecab7
commit 1920138e57
16 changed files with 106 additions and 72 deletions

View File

@@ -17,7 +17,7 @@ using Orchard.Core.Feeds;
using Orchard.Core.Feeds.Controllers; using Orchard.Core.Feeds.Controllers;
using Orchard.Core.Feeds.Models; using Orchard.Core.Feeds.Models;
using Orchard.Core.Feeds.Rss; using Orchard.Core.Feeds.Rss;
using Orchard.Core.Feeds.Services; using Orchard.Core.Feeds.StandardBuilders;
using Orchard.Mvc.Results; using Orchard.Mvc.Results;
using Orchard.Tests.Packages; using Orchard.Tests.Packages;
using Orchard.Tests.Stubs; using Orchard.Tests.Stubs;
@@ -29,7 +29,7 @@ namespace Orchard.Core.Tests.Feeds.Controllers {
public void InvalidFormatShpuldReturnNotFoundResult() { public void InvalidFormatShpuldReturnNotFoundResult() {
var controller = new FeedController( var controller = new FeedController(
Enumerable.Empty<IFeedQueryProvider>(), Enumerable.Empty<IFeedQueryProvider>(),
Enumerable.Empty<IFeedFormatterProvider>(), Enumerable.Empty<IFeedBuilderProvider>(),
Enumerable.Empty<IFeedItemBuilder>()) { Enumerable.Empty<IFeedItemBuilder>()) {
ValueProvider = Values.From(new { }) ValueProvider = Values.From(new { })
}; };
@@ -41,10 +41,10 @@ namespace Orchard.Core.Tests.Feeds.Controllers {
[Test] [Test]
public void ControllerShouldReturnAnActionResult() { public void ControllerShouldReturnAnActionResult() {
var formatProvider = new Mock<IFeedFormatterProvider>(); var formatProvider = new Mock<IFeedBuilderProvider>();
var format = new Mock<IFeedFormatter>(); var format = new Mock<IFeedBuilder>();
formatProvider.Setup(x => x.Match(It.IsAny<FeedContext>())) formatProvider.Setup(x => x.Match(It.IsAny<FeedContext>()))
.Returns(new FeedFormatterMatch { FeedFormatter = format.Object, Priority = 10 }); .Returns(new FeedBuilderMatch { FeedBuilder = format.Object, Priority = 10 });
var queryProvider = new Mock<IFeedQueryProvider>(); var queryProvider = new Mock<IFeedQueryProvider>();
var query = new Mock<IFeedQuery>(); var query = new Mock<IFeedQuery>();
@@ -84,7 +84,7 @@ namespace Orchard.Core.Tests.Feeds.Controllers {
public void Execute(FeedContext context) { public void Execute(FeedContext context) {
foreach (var item in _items) { foreach (var item in _items) {
context.FeedFormatter.AddItem(context, item); context.Builder.AddItem(context, item);
} }
} }
} }
@@ -96,7 +96,7 @@ namespace Orchard.Core.Tests.Feeds.Controllers {
var builder = new ContainerBuilder(); var builder = new ContainerBuilder();
builder.RegisterModule(new ImplicitCollectionSupportModule()); builder.RegisterModule(new ImplicitCollectionSupportModule());
builder.Register<FeedController>(); builder.Register<FeedController>();
builder.Register<RssFeedFormatProvider>().As<IFeedFormatterProvider>(); builder.Register<RssFeedBuilder>().As<IFeedBuilderProvider>();
builder.Register(query).As<IFeedQueryProvider>(); builder.Register(query).As<IFeedQueryProvider>();
var container = builder.Build(); var container = builder.Build();
@@ -122,7 +122,7 @@ namespace Orchard.Core.Tests.Feeds.Controllers {
var builder = new ContainerBuilder(); var builder = new ContainerBuilder();
builder.RegisterModule(new ImplicitCollectionSupportModule()); builder.RegisterModule(new ImplicitCollectionSupportModule());
builder.Register<FeedController>(); builder.Register<FeedController>();
builder.Register<RssFeedFormatProvider>().As<IFeedFormatterProvider>(); builder.Register<RssFeedBuilder>().As<IFeedBuilderProvider>();
builder.Register(query).As<IFeedQueryProvider>(); builder.Register(query).As<IFeedQueryProvider>();
var container = builder.Build(); var container = builder.Build();
@@ -168,7 +168,7 @@ namespace Orchard.Core.Tests.Feeds.Controllers {
builder.Register<FeedController>(); builder.Register<FeedController>();
builder.Register(new RouteCollection()); builder.Register(new RouteCollection());
builder.Register(mockContentManager.Object).As<IContentManager>(); builder.Register(mockContentManager.Object).As<IContentManager>();
builder.Register<RssFeedFormatProvider>().As<IFeedFormatterProvider>(); builder.Register<RssFeedBuilder>().As<IFeedBuilderProvider>();
builder.Register<CorePartsFeedItemBuilder>().As<IFeedItemBuilder>(); builder.Register<CorePartsFeedItemBuilder>().As<IFeedItemBuilder>();
builder.Register(query).As<IFeedQueryProvider>(); builder.Register(query).As<IFeedQueryProvider>();
var container = builder.Build(); var container = builder.Build();

View File

@@ -9,13 +9,13 @@ using Orchard.Mvc.Results;
namespace Orchard.Core.Feeds.Controllers { namespace Orchard.Core.Feeds.Controllers {
public class FeedController : Controller { public class FeedController : Controller {
private readonly IEnumerable<IFeedFormatterProvider> _feedFormatProviders; private readonly IEnumerable<IFeedBuilderProvider> _feedFormatProviders;
private readonly IEnumerable<IFeedQueryProvider> _feedQueryProviders; private readonly IEnumerable<IFeedQueryProvider> _feedQueryProviders;
private readonly IEnumerable<IFeedItemBuilder> _feedItemBuilders; private readonly IEnumerable<IFeedItemBuilder> _feedItemBuilders;
public FeedController( public FeedController(
IEnumerable<IFeedQueryProvider> feedQueryProviders, IEnumerable<IFeedQueryProvider> feedQueryProviders,
IEnumerable<IFeedFormatterProvider> feedFormatProviders, IEnumerable<IFeedBuilderProvider> feedFormatProviders,
IEnumerable<IFeedItemBuilder> feedItemBuilders) { IEnumerable<IFeedItemBuilder> feedItemBuilders) {
_feedQueryProviders = feedQueryProviders; _feedQueryProviders = feedQueryProviders;
_feedFormatProviders = feedFormatProviders; _feedFormatProviders = feedFormatProviders;
@@ -30,14 +30,14 @@ namespace Orchard.Core.Feeds.Controllers {
var bestFormatterMatch = _feedFormatProviders var bestFormatterMatch = _feedFormatProviders
.Select(provider => provider.Match(context)) .Select(provider => provider.Match(context))
.Where(match => match != null && match.FeedFormatter != null) .Where(match => match != null && match.FeedBuilder != null)
.OrderByDescending(match => match.Priority) .OrderByDescending(match => match.Priority)
.FirstOrDefault(); .FirstOrDefault();
if (bestFormatterMatch == null || bestFormatterMatch.FeedFormatter == null) if (bestFormatterMatch == null || bestFormatterMatch.FeedBuilder == null)
return new NotFoundResult(); return new NotFoundResult();
context.FeedFormatter = bestFormatterMatch.FeedFormatter; context.Builder = bestFormatterMatch.FeedBuilder;
var bestQueryMatch = _feedQueryProviders var bestQueryMatch = _feedQueryProviders
.Select(provider => provider.Match(context)) .Select(provider => provider.Match(context))
@@ -48,7 +48,7 @@ namespace Orchard.Core.Feeds.Controllers {
if (bestQueryMatch == null || bestQueryMatch.FeedQuery == null) if (bestQueryMatch == null || bestQueryMatch.FeedQuery == null)
return new NotFoundResult(); return new NotFoundResult();
return context.FeedFormatter.Process(context, () => { return context.Builder.Process(context, () => {
bestQueryMatch.FeedQuery.Execute(context); bestQueryMatch.FeedQuery.Execute(context);
_feedItemBuilders.Invoke(x => x.Populate(context), Logger); _feedItemBuilders.Invoke(x => x.Populate(context), Logger);
foreach (var contextualizer in context.Response.Contextualizers) { foreach (var contextualizer in context.Response.Contextualizers) {

View File

@@ -1,10 +1,9 @@
using System; using System;
using System.Web.Mvc; using System.Web.Mvc;
using Orchard.ContentManagement;
using Orchard.Core.Feeds.Models; using Orchard.Core.Feeds.Models;
namespace Orchard.Core.Feeds { namespace Orchard.Core.Feeds {
public interface IFeedFormatter { public interface IFeedBuilder {
ActionResult Process(FeedContext context, Action populate); ActionResult Process(FeedContext context, Action populate);
FeedItem<TItem> AddItem<TItem>(FeedContext context, TItem contentItem); FeedItem<TItem> AddItem<TItem>(FeedContext context, TItem contentItem);

View File

@@ -0,0 +1,12 @@
using Orchard.Core.Feeds.Models;
namespace Orchard.Core.Feeds {
public interface IFeedBuilderProvider : IDependency {
FeedBuilderMatch Match(FeedContext context);
}
public class FeedBuilderMatch {
public int Priority { get; set; }
public IFeedBuilder FeedBuilder { get; set; }
}
}

View File

@@ -1,12 +0,0 @@
using Orchard.Core.Feeds.Models;
namespace Orchard.Core.Feeds {
public interface IFeedFormatterProvider : IDependency {
FeedFormatterMatch Match(FeedContext context);
}
public class FeedFormatterMatch {
public int Priority { get; set; }
public IFeedFormatter FeedFormatter { get; set; }
}
}

View File

@@ -13,6 +13,6 @@ namespace Orchard.Core.Feeds.Models {
public string Format { get; set; } public string Format { get; set; }
public FeedResponse Response { get; set; } public FeedResponse Response { get; set; }
public IFeedFormatter FeedFormatter { get; set; } public IFeedBuilder Builder { get; set; }
} }
} }

View File

@@ -1,18 +1,16 @@
using System; using System;
using System.Collections.Generic;
using System.Web.Mvc; using System.Web.Mvc;
using System.Xml.Linq; using System.Xml.Linq;
using JetBrains.Annotations; using JetBrains.Annotations;
using Orchard.ContentManagement;
using Orchard.Core.Feeds.Models; using Orchard.Core.Feeds.Models;
namespace Orchard.Core.Feeds.Rss { namespace Orchard.Core.Feeds.Rss {
[UsedImplicitly] [UsedImplicitly]
public class RssFeedFormatProvider : IFeedFormatterProvider, IFeedFormatter { public class RssFeedBuilder : IFeedBuilderProvider, IFeedBuilder {
public FeedFormatterMatch Match(FeedContext context) { public FeedBuilderMatch Match(FeedContext context) {
if (context.Format == "rss") { if (context.Format == "rss") {
return new FeedFormatterMatch { return new FeedBuilderMatch {
FeedFormatter = this, FeedBuilder = this,
Priority = -5 Priority = -5
}; };
} }

View File

@@ -1,10 +1,11 @@
using System;
using System.Web.Mvc; using System.Web.Mvc;
using JetBrains.Annotations;
using Orchard.Mvc.Filters; using Orchard.Mvc.Filters;
using Orchard.Mvc.ViewModels; using Orchard.Mvc.ViewModels;
namespace Orchard.Core.Feeds.Services { namespace Orchard.Core.Feeds.Services {
[UsedImplicitly]
public class FeedFilter : FilterProvider, IResultFilter { public class FeedFilter : FilterProvider, IResultFilter {
private readonly IFeedManager _feedManager; private readonly IFeedManager _feedManager;

View File

@@ -3,10 +3,12 @@ using System.Linq;
using System.Web.Mvc; using System.Web.Mvc;
using System.Web.Routing; using System.Web.Routing;
using System.Xml.Linq; using System.Xml.Linq;
using JetBrains.Annotations;
using Orchard.ContentManagement; using Orchard.ContentManagement;
using Orchard.Core.Feeds.Models; using Orchard.Core.Feeds.Models;
namespace Orchard.Core.Feeds.Services { namespace Orchard.Core.Feeds.StandardBuilders {
[UsedImplicitly]
public class CorePartsFeedItemBuilder : IFeedItemBuilder { public class CorePartsFeedItemBuilder : IFeedItemBuilder {
private readonly IContentManager _contentManager; private readonly IContentManager _contentManager;
private readonly RouteCollection _routes; private readonly RouteCollection _routes;
@@ -32,30 +34,30 @@ namespace Orchard.Core.Feeds.Services {
var link = new XElement("link"); var link = new XElement("link");
var guid = new XElement("guid", new XAttribute("isPermaLink", "true")); var guid = new XElement("guid", new XAttribute("isPermaLink", "true"));
context.Response.Contextualize(requestContext => {
var urlHelper = new UrlHelper(requestContext, _routes);
link.Add(urlHelper.RouteUrl(inspector.Link));
guid.Add(urlHelper.RouteUrl(inspector.Link));
});
feedItem.Element.SetElementValue("title", inspector.Title); feedItem.Element.SetElementValue("title", inspector.Title);
feedItem.Element.Add(link); feedItem.Element.Add(link);
feedItem.Element.SetElementValue("description", inspector.Description); feedItem.Element.SetElementValue("description", inspector.Description);
if (inspector.PublishedUtc != null) if (inspector.PublishedUtc != null)
feedItem.Element.SetElementValue("pubDate", inspector.PublishedUtc);//TODO: format feedItem.Element.SetElementValue("pubDate", inspector.PublishedUtc);//TODO: format
feedItem.Element.Add(guid); feedItem.Element.Add(guid);
context.Response.Contextualize(requestContext => {
var urlHelper = new UrlHelper(requestContext, _routes);
link.Add(urlHelper.RouteUrl(inspector.Link));
guid.Add(urlHelper.RouteUrl(inspector.Link));
});
} }
else { else {
var feedItem1 = feedItem; var feedItem1 = feedItem;
context.Response.Contextualize(requestContext => { context.Response.Contextualize(requestContext => {
var urlHelper = new UrlHelper(requestContext, _routes); var urlHelper = new UrlHelper(requestContext, _routes);
context.FeedFormatter.AddProperty(context, feedItem1, "published-date", urlHelper.RouteUrl(inspector.Link)); context.Builder.AddProperty(context, feedItem1, "link", urlHelper.RouteUrl(inspector.Link));
}); });
context.FeedFormatter.AddProperty(context, feedItem, "title", inspector.Title); context.Builder.AddProperty(context, feedItem, "title", inspector.Title);
context.FeedFormatter.AddProperty(context, feedItem, "description", inspector.Description); context.Builder.AddProperty(context, feedItem, "description", inspector.Description);
if (inspector.PublishedUtc != null) if (inspector.PublishedUtc != null)
context.FeedFormatter.AddProperty(context, feedItem, "published-date", Convert.ToString(inspector.PublishedUtc)); // format? cvt to generic T? context.Builder.AddProperty(context, feedItem, "published-date", Convert.ToString(inspector.PublishedUtc)); // format? cvt to generic T?
} }
} }
} }

View File

@@ -4,7 +4,7 @@ using Orchard.ContentManagement;
using Orchard.ContentManagement.Aspects; using Orchard.ContentManagement.Aspects;
using Orchard.Core.Common.Models; using Orchard.Core.Common.Models;
namespace Orchard.Core.Feeds.Services { namespace Orchard.Core.Feeds.StandardBuilders {
public class ItemInspector { public class ItemInspector {
private readonly IContent _item; private readonly IContent _item;
private readonly ContentItemMetadata _metadata; private readonly ContentItemMetadata _metadata;

View File

@@ -5,7 +5,7 @@ using Orchard.ContentManagement;
using Orchard.Core.Common.Models; using Orchard.Core.Common.Models;
using Orchard.Core.Common.Records; using Orchard.Core.Common.Records;
using Orchard.Core.Feeds.Models; using Orchard.Core.Feeds.Models;
using Orchard.Core.Feeds.Services; using Orchard.Core.Feeds.StandardBuilders;
namespace Orchard.Core.Feeds.StandardQueries { namespace Orchard.Core.Feeds.StandardQueries {
[UsedImplicitly] [UsedImplicitly]
@@ -50,11 +50,11 @@ namespace Orchard.Core.Feeds.StandardQueries {
}); });
} }
else { else {
context.FeedFormatter.AddProperty(context, null, "title", inspector.Title); context.Builder.AddProperty(context, null, "title", inspector.Title);
context.FeedFormatter.AddProperty(context, null, "description", inspector.Description); context.Builder.AddProperty(context, null, "description", inspector.Description);
context.Response.Contextualize(requestContext => { context.Response.Contextualize(requestContext => {
var urlHelper = new UrlHelper(requestContext); var urlHelper = new UrlHelper(requestContext);
context.FeedFormatter.AddProperty(context, null, "link", urlHelper.RouteUrl(inspector.Link)); context.Builder.AddProperty(context, null, "link", urlHelper.RouteUrl(inspector.Link));
}); });
} }
@@ -64,7 +64,7 @@ namespace Orchard.Core.Feeds.StandardQueries {
.Slice(0, limit); .Slice(0, limit);
foreach (var item in items) { foreach (var item in items) {
context.FeedFormatter.AddItem(context, item); context.Builder.AddItem(context, item);
} }
} }
} }

View File

@@ -91,15 +91,15 @@
<Compile Include="Feeds\StandardBuilders\ItemInspector.cs" /> <Compile Include="Feeds\StandardBuilders\ItemInspector.cs" />
<Compile Include="Feeds\StandardQueries\ContainerFeedQuery.cs" /> <Compile Include="Feeds\StandardQueries\ContainerFeedQuery.cs" />
<Compile Include="Feeds\StandardBuilders\CorePartsFeedItemBuilder.cs" /> <Compile Include="Feeds\StandardBuilders\CorePartsFeedItemBuilder.cs" />
<Compile Include="Feeds\IFeedFormatter.cs" /> <Compile Include="Feeds\IFeedBuilder.cs" />
<Compile Include="Feeds\IFeedFormatterProvider.cs" /> <Compile Include="Feeds\IFeedBuilderProvider.cs" />
<Compile Include="Feeds\IFeedQuery.cs" /> <Compile Include="Feeds\IFeedQuery.cs" />
<Compile Include="Feeds\IFeedQueryProvider.cs" /> <Compile Include="Feeds\IFeedQueryProvider.cs" />
<Compile Include="Feeds\IFeedItemBuilder.cs" /> <Compile Include="Feeds\IFeedItemBuilder.cs" />
<Compile Include="Feeds\Models\FeedContext.cs" /> <Compile Include="Feeds\Models\FeedContext.cs" />
<Compile Include="Feeds\Models\FeedItem.cs" /> <Compile Include="Feeds\Models\FeedItem.cs" />
<Compile Include="Feeds\Models\FeedResponse.cs" /> <Compile Include="Feeds\Models\FeedResponse.cs" />
<Compile Include="Feeds\Rss\RssFeedFormat.cs" /> <Compile Include="Feeds\Rss\RssFeedBuilder.cs" />
<Compile Include="Feeds\Rss\RssResult.cs" /> <Compile Include="Feeds\Rss\RssResult.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Scheduling\Records\ScheduledTaskRecord.cs" /> <Compile Include="Scheduling\Records\ScheduledTaskRecord.cs" />

View File

@@ -2,14 +2,16 @@
using System.Linq; using System.Linq;
using System.Web.Mvc; using System.Web.Mvc;
using System.Xml.Linq; using System.Xml.Linq;
using JetBrains.Annotations;
using Orchard.Comments.Models; using Orchard.Comments.Models;
using Orchard.ContentManagement; using Orchard.ContentManagement;
using Orchard.Core.Feeds; using Orchard.Core.Feeds;
using Orchard.Core.Feeds.Models; using Orchard.Core.Feeds.Models;
using Orchard.Core.Feeds.Services; using Orchard.Core.Feeds.StandardBuilders;
using Orchard.Localization; using Orchard.Localization;
namespace Orchard.Comments.Feeds { namespace Orchard.Comments.Feeds {
[UsedImplicitly]
public class CommentFeedItemBuilder : IFeedItemBuilder { public class CommentFeedItemBuilder : IFeedItemBuilder {
private readonly IContentManager _contentManager; private readonly IContentManager _contentManager;
@@ -31,9 +33,6 @@ namespace Orchard.Comments.Feeds {
var title = T("Comment on {0} by {1}", commentedOnInspector.Title, comment.Author); var title = T("Comment on {0} by {1}", commentedOnInspector.Title, comment.Author);
//var inspector = new CommentInspector(
// feedItem.Item,
// _contentManager.GetItemMetadata(feedItem.Item));
// add to known formats // add to known formats
if (context.Format == "rss") { if (context.Format == "rss") {
@@ -55,12 +54,12 @@ namespace Orchard.Comments.Feeds {
var feedItem1 = feedItem; var feedItem1 = feedItem;
context.Response.Contextualize(requestContext => { context.Response.Contextualize(requestContext => {
var urlHelper = new UrlHelper(requestContext); var urlHelper = new UrlHelper(requestContext);
context.FeedFormatter.AddProperty(context, feedItem1, "published-date", urlHelper.RouteUrl(commentedOnInspector.Link)); context.Builder.AddProperty(context, feedItem1, "link", urlHelper.RouteUrl(commentedOnInspector.Link));
}); });
context.FeedFormatter.AddProperty(context, feedItem, "title", title.ToString()); context.Builder.AddProperty(context, feedItem, "title", title.ToString());
context.FeedFormatter.AddProperty(context, feedItem, "description", comment.CommentText); context.Builder.AddProperty(context, feedItem, "description", comment.CommentText);
context.FeedFormatter.AddProperty(context, feedItem, "published-date", Convert.ToString(comment.CommentDate)); // format? cvt to generic T? context.Builder.AddProperty(context, feedItem, "published-date", Convert.ToString(comment.CommentDate)); // format? cvt to generic T?
} }
} }
} }

View File

@@ -0,0 +1,35 @@
using System.Linq;
using Orchard.Comments.Models;
using Orchard.Core.Common.Records;
using Orchard.Core.Feeds;
using Orchard.Core.Feeds.Models;
using Orchard.Data;
namespace Orchard.Comments.Feeds {
public class CommentScopeFeedQuery : IFeedQueryProvider, IFeedQuery {
private readonly IRepository<CommonRecord> _commonRepository;
private readonly IRepository<Comment> _commentRepository;
public CommentScopeFeedQuery(
IRepository<CommonRecord> commonRepository,
IRepository<Comment> commentRepository) {
_commonRepository = commonRepository;
_commentRepository = commentRepository;
}
public FeedQueryMatch Match(FeedContext context) {
if (context.ValueProvider.ContainsPrefix("commentscopeid")) {
return new FeedQueryMatch { Priority = -1, FeedQuery = this };
}
return null;
}
public void Execute(FeedContext context) {
var scopeContainerId = (int)context.ValueProvider.GetValue("commentscopeid").ConvertTo(typeof (int));
_commonRepository.Fetch(x => x.Container.Id == scopeContainerId).Select(x => x.Id);
var comments = _commentRepository.Fetch(x=>x.)
context.FeedFormatter.AddItem(context, new Comment());
}
}
}

View File

@@ -15,7 +15,7 @@ namespace Orchard.Comments.Feeds {
} }
public FeedQueryMatch Match(FeedContext context) { public FeedQueryMatch Match(FeedContext context) {
if (context.ValueProvider.ContainsPrefix("commentedoncontainer")) { if (context.ValueProvider.GetValue("commentedoncontainer") != null) {
return new FeedQueryMatch { Priority = -1, FeedQuery = this }; return new FeedQueryMatch { Priority = -1, FeedQuery = this };
} }
return null; return null;
@@ -35,7 +35,7 @@ namespace Orchard.Comments.Feeds {
0, limit); 0, limit);
foreach (var comment in comments) { foreach (var comment in comments) {
context.FeedFormatter.AddItem(context, comment); context.Builder.AddItem(context, comment);
} }
} }
} }

View File

@@ -15,7 +15,7 @@ namespace Orchard.Comments.Feeds {
} }
public FeedQueryMatch Match(FeedContext context) { public FeedQueryMatch Match(FeedContext context) {
if (context.ValueProvider.ContainsPrefix("commentedon")) { if (context.ValueProvider.GetValue("commentedon") != null) {
return new FeedQueryMatch { Priority = -1, FeedQuery = this }; return new FeedQueryMatch { Priority = -1, FeedQuery = this };
} }
return null; return null;
@@ -35,7 +35,7 @@ namespace Orchard.Comments.Feeds {
0, limit); 0, limit);
foreach (var comment in comments) { foreach (var comment in comments) {
context.FeedFormatter.AddItem(context, comment); context.Builder.AddItem(context, comment);
} }
} }
} }