Corrected Page Expires bug

Intercept exceptions at event base, to prevent succeeding events to be ignored
Corrected PageService.Get() to retrieve only Page content items

--HG--
branch : dev
This commit is contained in:
Sebastien Ros
2010-05-14 17:06:28 -07:00
parent 6e023c01b3
commit 75390f1582
2 changed files with 12 additions and 4 deletions

View File

@@ -35,11 +35,11 @@ namespace Orchard.Pages.Services {
public IEnumerable<Page> Get(PageStatus status) {
switch (status) {
case PageStatus.All:
return _contentManager.Query<Page>(VersionOptions.Latest).List();
return _contentManager.Query(PageDriver.ContentType.Name).Join<RoutableRecord>().ForVersion(VersionOptions.Latest).List().AsPart<Page>();
case PageStatus.Published:
return _contentManager.Query<Page>(VersionOptions.Published).List();
return _contentManager.Query(PageDriver.ContentType.Name).Join<RoutableRecord>().ForVersion(VersionOptions.Published).List().AsPart<Page>();
case PageStatus.Offline:
return _contentManager.Query<Page>(VersionOptions.Latest).Where<ContentPartVersionRecord>(ci => !ci.ContentItemVersionRecord.Published).List();
return _contentManager.Query(PageDriver.ContentType.Name).Join<RoutableRecord>().ForVersion(VersionOptions.Latest).Where<ContentPartVersionRecord>(ci => !ci.ContentItemVersionRecord.Published).List().AsPart<Page>();
default:
return Enumerable.Empty<Page>();
}

View File

@@ -36,7 +36,15 @@ namespace Orchard.Events {
var eventHandlers = _eventHandlers();
foreach (var eventHandler in eventHandlers) {
TryInvoke(eventHandler, interfaceName, methodName, eventData);
try {
TryInvoke(eventHandler, interfaceName, methodName, eventData);
}
catch(Exception ex) {
Logger.Error(ex, "{2} thrown from {0} by {1}",
interfaceName + "." +methodName,
eventHandler.GetType().FullName,
ex.GetType().Name);
}
}
}