Return null if container type is not found (#15974)
This commit is contained in:
@@ -49,7 +49,7 @@ internal class EntityContainerRepository : EntityRepositoryBase<int, EntityConta
|
||||
.Where(
|
||||
"text=@name AND level=@level AND nodeObjectType=@umbracoObjectTypeId",
|
||||
new { name, level, umbracoObjectTypeId = NodeObjectTypeId });
|
||||
return Database.Fetch<NodeDto>(sql).Select(CreateEntity);
|
||||
return Database.Fetch<NodeDto>(sql).Select(CreateEntity).WhereNotNull();
|
||||
}
|
||||
|
||||
// never cache
|
||||
@@ -73,7 +73,7 @@ internal class EntityContainerRepository : EntityRepositoryBase<int, EntityConta
|
||||
GetBaseQuery(false)
|
||||
.Where<NodeDto>(x => x.NodeObjectType == NodeObjectTypeId)
|
||||
.WhereIn<NodeDto>(x => x.NodeId, batch))
|
||||
.Select(CreateEntity);
|
||||
.Select(CreateEntity).WhereNotNull();
|
||||
}
|
||||
|
||||
// else
|
||||
@@ -81,7 +81,7 @@ internal class EntityContainerRepository : EntityRepositoryBase<int, EntityConta
|
||||
.Where("nodeObjectType=@umbracoObjectTypeId", new { umbracoObjectTypeId = NodeObjectTypeId })
|
||||
.OrderBy<NodeDto>(x => x.Level);
|
||||
|
||||
return Database.Fetch<NodeDto>(sql).Select(CreateEntity);
|
||||
return Database.Fetch<NodeDto>(sql).Select(CreateEntity).WhereNotNull();
|
||||
}
|
||||
|
||||
protected override IEnumerable<EntityContainer> PerformGetByQuery(IQuery<EntityContainer> query) =>
|
||||
@@ -103,16 +103,20 @@ internal class EntityContainerRepository : EntityRepositoryBase<int, EntityConta
|
||||
return sql;
|
||||
}
|
||||
|
||||
private static EntityContainer CreateEntity(NodeDto nodeDto)
|
||||
private static EntityContainer? CreateEntity(NodeDto nodeDto)
|
||||
{
|
||||
if (nodeDto.NodeObjectType.HasValue == false)
|
||||
{
|
||||
throw new InvalidOperationException("Node with id " + nodeDto.NodeId + " has no object type.");
|
||||
}
|
||||
|
||||
// throws if node is not a container
|
||||
Guid containedObjectType = EntityContainer.GetContainedObjectType(nodeDto.NodeObjectType.Value);
|
||||
|
||||
if (containedObjectType == Guid.Empty)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var entity = new EntityContainer(nodeDto.NodeId, nodeDto.UniqueId,
|
||||
nodeDto.ParentId, nodeDto.Path, nodeDto.Level, nodeDto.SortOrder,
|
||||
containedObjectType,
|
||||
|
||||
Reference in New Issue
Block a user