Fixes up the resulting casts when invoking extension methods dynamically in our dynamic objects.
This commit is contained in:
@@ -228,20 +228,21 @@ namespace Umbraco.Web.Models
|
||||
//need to check the return type and possibly cast if result is from an extension method found
|
||||
if (attempt.Result.Reason == DynamicInstanceHelper.TryInvokeMemberSuccessReason.FoundExtensionMethod)
|
||||
{
|
||||
if (attempt.Result.ObjectResult != null)
|
||||
//we don't need to cast if the result is already DynamicPublishedContentList
|
||||
if (attempt.Result.ObjectResult != null && (!(attempt.Result.ObjectResult is DynamicPublishedContentList)))
|
||||
{
|
||||
if (attempt.Result.ObjectResult is IPublishedContent)
|
||||
{
|
||||
result = new DynamicPublishedContent((IPublishedContent)attempt.Result.ObjectResult);
|
||||
}
|
||||
if (attempt.Result.ObjectResult is IEnumerable<IPublishedContent>)
|
||||
{
|
||||
result = new DynamicPublishedContentList((IEnumerable<IPublishedContent>)attempt.Result.ObjectResult);
|
||||
}
|
||||
if (attempt.Result.ObjectResult is IEnumerable<DynamicPublishedContent>)
|
||||
else if (attempt.Result.ObjectResult is IEnumerable<DynamicPublishedContent>)
|
||||
{
|
||||
result = new DynamicPublishedContentList((IEnumerable<DynamicPublishedContent>)attempt.Result.ObjectResult);
|
||||
}
|
||||
else if (attempt.Result.ObjectResult is IEnumerable<IPublishedContent>)
|
||||
{
|
||||
result = new DynamicPublishedContentList((IEnumerable<IPublishedContent>)attempt.Result.ObjectResult);
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user