mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
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:
@@ -35,11 +35,11 @@ namespace Orchard.Pages.Services {
|
|||||||
public IEnumerable<Page> Get(PageStatus status) {
|
public IEnumerable<Page> Get(PageStatus status) {
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case PageStatus.All:
|
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:
|
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:
|
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:
|
default:
|
||||||
return Enumerable.Empty<Page>();
|
return Enumerable.Empty<Page>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,8 +36,16 @@ namespace Orchard.Events {
|
|||||||
|
|
||||||
var eventHandlers = _eventHandlers();
|
var eventHandlers = _eventHandlers();
|
||||||
foreach (var eventHandler in eventHandlers) {
|
foreach (var eventHandler in eventHandlers) {
|
||||||
|
try {
|
||||||
TryInvoke(eventHandler, interfaceName, methodName, eventData);
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void TryInvoke(IEventHandler eventHandler, string interfaceName, string methodName, IDictionary<string, object> arguments) {
|
private static void TryInvoke(IEventHandler eventHandler, string interfaceName, string methodName, IDictionary<string, object> arguments) {
|
||||||
|
|||||||
Reference in New Issue
Block a user