I'm creating module for Orchard CMS - viewer widget for elements of custom ContentType.
So, I have interface for service:
public interface IReviewGrabber : IDependency
{
IEnumerable<ReviewPart> Reviews { get; }
}
And it's implementation:
public class ReviewGrabber : IReviewGrabber
{
readonly IOrchardServices _orchardServices;
readonly IEnumerable<ReviewPart> _reviews;
public ReviewGrabber(IOrchardServices orchardServices)
{
_orchardServices = orchardServices;
var temp = _orchardServices.ContentManager.Query<ReviewPart, ReviewRecord>();
_reviews = temp.List();
}
public IEnumerable<ReviewPart> Reviews
{
get { return _reviews; }
}
}
And handler for ContentType:
public class ReviewHandler : ContentHandler
{
public ReviewHandler(IRepository<ReviewRecord> repository)
{
Filters.Add(StorageFilter.For(repository));
}
}
Debugging this, I've added element of type Review manually, and it works. In ReviewGrabber
class variable temp
fills correctly, but calling method List()
for it fires error:
ValueFactory tries to access the Value property of this instance.
_handlers.Value '_handlers.Value' threw an exception of type 'System.InvalidOperationException' System.Collections.Generic.IEnumerable {System.InvalidOperationException}
on row
public IEnumerable<IContentHandler> Handlers {
get { return _handlers.Value; }
}
in DefaultContentManager.cs
What's wrong? Thank you!