Changed the behaviour of Library.NodeById and Library.MediaById with invalid ids to return DynamicNull and checked for this in DynamicNode's obsolete methods to maintain backwards compatibility

This commit is contained in:
agrath
2011-10-09 07:06:52 -13:00
parent 49877c4874
commit 3baaa9173e
2 changed files with 44 additions and 7 deletions

View File

@@ -999,17 +999,32 @@ namespace umbraco.MacroEngines
[Obsolete("@Model.NodeById is obsolute, use @Library.NodeById")]
public DynamicNode NodeById(int Id)
{
return razorLibrary.Value.NodeById(Id);
var node = razorLibrary.Value.NodeById(Id);
if (node is DynamicNull)
{
return new DynamicNode(0);
}
return node;
}
[Obsolete("@Model.NodeById is obsolute, use @Library.NodeById")]
public DynamicNode NodeById(string Id)
{
return razorLibrary.Value.NodeById(Id);
var node = razorLibrary.Value.NodeById(Id);
if (node is DynamicNull)
{
return new DynamicNode(0);
}
return node;
}
[Obsolete("@Model.NodeById is obsolute, use @Library.NodeById")]
public DynamicNode NodeById(object Id)
{
return razorLibrary.Value.NodeById(Id);
var node = razorLibrary.Value.NodeById(Id);
if (node is DynamicNull)
{
return new DynamicNode(0);
}
return node;
}
[Obsolete("@Model.NodeById is obsolute, use @Library.NodeById")]
public DynamicNodeList NodesById(List<object> Ids)
@@ -1029,17 +1044,32 @@ namespace umbraco.MacroEngines
[Obsolete("@Model.MediaById is obsolute, use @Library.MediaById")]
public DynamicNode MediaById(int Id)
{
return razorLibrary.Value.MediaById(Id);
var media = razorLibrary.Value.MediaById(Id);
if (media is DynamicNull)
{
return new DynamicNode(0);
}
return media;
}
[Obsolete("@Model.MediaById is obsolute, use @Library.MediaById")]
public DynamicNode MediaById(string Id)
{
return razorLibrary.Value.MediaById(Id);
var media = razorLibrary.Value.MediaById(Id);
if (media is DynamicNull)
{
return new DynamicNode(0);
}
return media;
}
[Obsolete("@Model.MediaById is obsolute, use @Library.MediaById")]
public DynamicNode MediaById(object Id)
{
return razorLibrary.Value.MediaById(Id);
var media = razorLibrary.Value.MediaById(Id);
if (media is DynamicNull)
{
return new DynamicNode(0);
}
return media;
}
[Obsolete("@Model.MediaById is obsolute, use @Library.MediaById")]
public DynamicNodeList MediaById(List<object> Ids)

View File

@@ -35,6 +35,10 @@ namespace umbraco.MacroEngines.Library
if (node != null && node.Id == 0) return new DynamicNull();
return node;
}
public dynamic NodeById(DynamicNull Id)
{
return new DynamicNull();
}
public dynamic NodeById(object Id)
{
if (Id.GetType() == typeof(DynamicNull))
@@ -70,7 +74,10 @@ namespace umbraco.MacroEngines.Library
{
return NodesById(Ids.ToList());
}
public dynamic MediaById(DynamicNull Id)
{
return new DynamicNull();
}
public dynamic MediaById(int Id)
{
var ebm = ExamineBackedMedia.GetUmbracoMedia(Id);