Changes api to GetData

This commit is contained in:
Shannon
2020-02-06 16:52:34 +11:00
parent 39c0e686ff
commit 45e892f350
4 changed files with 22 additions and 16 deletions
@@ -10,10 +10,9 @@ namespace Umbraco.Core.Models.Blocks
[DataContract(Name = "blockListLayout", Namespace = "")]
public class BlockListLayoutReference : IBlockElement<IPublishedElement>
{
public BlockListLayoutReference(Udi udi, IPublishedElement data, IPublishedElement settings)
public BlockListLayoutReference(Udi udi, IPublishedElement settings)
{
Udi = udi ?? throw new ArgumentNullException(nameof(udi));
Data = data ?? throw new ArgumentNullException(nameof(data));
Settings = settings; // can be null
}
@@ -29,13 +28,5 @@ namespace Umbraco.Core.Models.Blocks
[DataMember(Name = "settings")]
public IPublishedElement Settings { get; }
/// <summary>
/// The data item referenced
/// </summary>
/// <remarks>
/// This is ignored from serialization since it is just a reference to the actual data element
/// </remarks>
[IgnoreDataMember]
public IPublishedElement Data { get; }
}
}
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using Umbraco.Core.Models.PublishedContent;
@@ -22,6 +23,17 @@ namespace Umbraco.Core.Models.Blocks
[DataMember(Name = "layout")]
public IEnumerable<BlockListLayoutReference> Layout { get; }
/// <summary>
/// Returns the data item associated with the layout udi reference
/// </summary>
/// <param name="udi"></param>
/// <returns></returns>
public IPublishedElement GetData(Udi udi)
{
if (!(udi is GuidUdi guidUdi))
return null;
return Data.FirstOrDefault(x => x.Key == guidUdi.Guid);
}
}
}
@@ -317,12 +317,15 @@ data: []}";
Assert.AreEqual(2, converted.Layout.Count());
var item0 = converted.Layout.ElementAt(0);
Assert.AreEqual(Guid.Parse("1304E1DD-AC87-4396-84FE-8A399231CB3D"), item0.Data.Key);
Assert.AreEqual("home", item0.Data.ContentType.Alias);
var item0Data = converted.GetData(item0.Udi);
Assert.IsNotNull(item0Data);
Assert.AreEqual(Guid.Parse("1304E1DD-AC87-4396-84FE-8A399231CB3D"), item0Data.Key);
Assert.AreEqual("home", item0Data.ContentType.Alias);
var item1 = converted.Layout.ElementAt(1);
Assert.AreEqual(Guid.Parse("0A4A416E-547D-464F-ABCC-6F345C17809A"), item1.Data.Key);
Assert.AreEqual("home", item1.Data.ContentType.Alias);
var item1Data = converted.GetData(item1.Udi);
Assert.AreEqual(Guid.Parse("0A4A416E-547D-464F-ABCC-6F345C17809A"), item1Data.Key);
Assert.AreEqual("home", item1Data.ContentType.Alias);
}
@@ -108,7 +108,7 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters
if (!elements.TryGetValue(guidUdi.Guid, out var data))
continue;
var layoutRef = new BlockListLayoutReference(udi, data, element);
var layoutRef = new BlockListLayoutReference(udi, element);
layout.Add(layoutRef);
}