2020-12-05 11:12:55 +01:00
|
|
|
// Copyright (c) Umbraco.
|
|
|
|
|
// See LICENSE for more details.
|
|
|
|
|
|
2021-02-18 11:06:02 +01:00
|
|
|
using Umbraco.Cms.Core.Models;
|
2020-06-17 16:39:28 +02:00
|
|
|
|
2022-06-21 08:09:38 +02:00
|
|
|
namespace Umbraco.Cms.Tests.Common.Builders.Extensions;
|
|
|
|
|
|
|
|
|
|
public static class ContentItemSaveBuilderExtensions
|
2020-06-17 16:39:28 +02:00
|
|
|
{
|
2022-06-21 08:09:38 +02:00
|
|
|
public static ContentItemSaveBuilder WithContent(this ContentItemSaveBuilder builder, IContent content)
|
2020-06-17 16:39:28 +02:00
|
|
|
{
|
2022-06-21 08:09:38 +02:00
|
|
|
builder.WithId(content.Id);
|
|
|
|
|
builder.WithContentTypeAlias(content.ContentType.Alias);
|
|
|
|
|
|
|
|
|
|
if (content.CultureInfos.Count == 0)
|
2020-06-17 16:39:28 +02:00
|
|
|
{
|
2022-06-21 08:09:38 +02:00
|
|
|
var variantBuilder = builder.AddVariant();
|
|
|
|
|
variantBuilder.WithName(content.Name);
|
2020-06-17 16:39:28 +02:00
|
|
|
|
2022-06-21 08:09:38 +02:00
|
|
|
foreach (var contentProperty in content.Properties)
|
2020-06-17 16:39:28 +02:00
|
|
|
{
|
2022-06-21 08:09:38 +02:00
|
|
|
AddInvariantProperty(variantBuilder, contentProperty);
|
2020-06-17 16:39:28 +02:00
|
|
|
}
|
2022-06-21 08:09:38 +02:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
foreach (var contentCultureInfos in content.CultureInfos)
|
2020-06-17 16:39:28 +02:00
|
|
|
{
|
2022-06-21 08:09:38 +02:00
|
|
|
var variantBuilder = builder.AddVariant();
|
2020-06-17 16:39:28 +02:00
|
|
|
|
2022-06-21 08:09:38 +02:00
|
|
|
variantBuilder.WithName(contentCultureInfos.Name);
|
|
|
|
|
variantBuilder.WithCultureInfo(contentCultureInfos.Culture);
|
2020-06-17 16:39:28 +02:00
|
|
|
|
2022-06-21 08:09:38 +02:00
|
|
|
foreach (var contentProperty in content.Properties)
|
|
|
|
|
{
|
|
|
|
|
AddInvariantProperty(variantBuilder, contentProperty);
|
2020-06-17 16:39:28 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-06-21 08:09:38 +02:00
|
|
|
return builder;
|
2020-06-17 16:39:28 +02:00
|
|
|
}
|
2022-06-21 08:09:38 +02:00
|
|
|
|
|
|
|
|
private static void AddInvariantProperty(ContentVariantSaveBuilder<ContentItemSaveBuilder> variantBuilder, IProperty contentProperty) =>
|
|
|
|
|
variantBuilder
|
|
|
|
|
.AddProperty()
|
|
|
|
|
.WithId(contentProperty.Id)
|
|
|
|
|
.WithAlias(contentProperty.Alias)
|
|
|
|
|
.WithValue(contentProperty.GetValue())
|
|
|
|
|
.Done();
|
2020-06-17 16:39:28 +02:00
|
|
|
}
|