Files

62 lines
2.3 KiB
C#
Raw Permalink Normal View History

using Umbraco.Cms.Api.Management.ViewModels;
using Umbraco.Cms.Api.Management.ViewModels.Document;
using Umbraco.Cms.Core.Models.ContentEditing;
namespace Umbraco.Cms.Tests.Common.TestHelpers;
public static class DocumentUpdateHelper
{
public static UpdateDocumentRequestModel CreateInvariantDocumentUpdateRequestModel(ContentCreateModel createModel)
{
var updateRequestModel = new UpdateDocumentRequestModel();
updateRequestModel.Template = ReferenceByIdModel.ReferenceOrNull(createModel.TemplateKey);
updateRequestModel.Variants =
[
new DocumentVariantRequestModel
{
Segment = null,
Culture = null,
Name = createModel.Variants.FirstOrDefault(v => v.Culture is null && v.Segment is null)?.Name
?? throw new ArgumentException("Could not find an invariant variant for the model name", nameof(createModel)),
}
];
updateRequestModel.Values = createModel.Properties.Select(x => new DocumentValueModel
{
Alias = x.Alias,
Value = x.Value,
});
return updateRequestModel;
}
public static CreateDocumentRequestModel CreateDocumentRequestModel(ContentCreateModel createModel)
{
var createDocumentRequestModel = new CreateDocumentRequestModel
{
Template = ReferenceByIdModel.ReferenceOrNull(createModel.TemplateKey),
DocumentType = new ReferenceByIdModel(createModel.ContentTypeKey),
Parent = ReferenceByIdModel.ReferenceOrNull(createModel.ParentKey),
};
createDocumentRequestModel.Variants =
[
new DocumentVariantRequestModel
{
Segment = null,
Culture = null,
Name = createModel.Variants.FirstOrDefault(v => v.Culture is null && v.Segment is null)?.Name
?? throw new ArgumentException("Could not find an invariant variant for the model name", nameof(createModel)),
}
];
createDocumentRequestModel.Values = createModel.Properties.Select(x => new DocumentValueModel
{
Alias = x.Alias,
Value = x.Value,
});
return createDocumentRequestModel;
}
}