Further NRT amends (#12363)
* Amended nullability of base Deploy classes.
* Ensured ContentItemDisplay.Variants is non-nullable.
* Set IArtifactSignature.Dependencies to be non-nullable.
* Update template collection retrieval to be non-nullable.
* IMediaService.GetRootMedia to be non-nullable.
* Non-nullable collection for IMemberService.GetMembersByMemberType.
* Non-nullable collection for member role retrieval.
* Non-nullable collection for root dictionary items.
* Non-nullable collection for child dictionary items.
* Applied suggestions from code review
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Remove extra dot
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
(cherry picked from commit 63b77b7743)
This commit is contained in:
committed by
Bjarke Berg
parent
fbdf704567
commit
ea77c9a4fc
@@ -1,7 +1,3 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Umbraco.Cms.Core.Deploy
|
||||
{
|
||||
/// <summary>
|
||||
@@ -15,13 +11,13 @@ namespace Umbraco.Cms.Core.Deploy
|
||||
Udi = udi ?? throw new ArgumentNullException("udi");
|
||||
Name = Udi.ToString();
|
||||
|
||||
Dependencies = dependencies ?? Enumerable.Empty<ArtifactDependency>();
|
||||
_dependencies = dependencies ?? Enumerable.Empty<ArtifactDependency>();
|
||||
_checksum = new Lazy<string>(GetChecksum);
|
||||
}
|
||||
|
||||
private readonly Lazy<string> _checksum;
|
||||
|
||||
private IEnumerable<ArtifactDependency>? _dependencies;
|
||||
private IEnumerable<ArtifactDependency> _dependencies;
|
||||
|
||||
protected abstract string GetChecksum();
|
||||
|
||||
@@ -43,16 +39,16 @@ namespace Umbraco.Cms.Core.Deploy
|
||||
/// </remarks>
|
||||
public bool ShouldSerializeChecksum() => false;
|
||||
|
||||
public IEnumerable<ArtifactDependency>? Dependencies
|
||||
public IEnumerable<ArtifactDependency> Dependencies
|
||||
{
|
||||
get => _dependencies;
|
||||
set => _dependencies = value?.OrderBy(x => x.Udi);
|
||||
set => _dependencies = value.OrderBy(x => x.Udi);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public string Name { get; set; }
|
||||
|
||||
public string? Alias { get; set; }
|
||||
public string Alias { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
/// <param name="connector">The service connector deploying the artifact.</param>
|
||||
/// <param name="nextPass">The next pass number.</param>
|
||||
/// <returns>A deploying artifact.</returns>
|
||||
public static ArtifactDeployState<TArtifact, TEntity> Create<TArtifact, TEntity>(TArtifact art, TEntity entity, IServiceConnector connector, int nextPass)
|
||||
public static ArtifactDeployState<TArtifact, TEntity> Create<TArtifact, TEntity>(TArtifact art, TEntity? entity, IServiceConnector connector, int nextPass)
|
||||
where TArtifact : IArtifact
|
||||
{
|
||||
return new ArtifactDeployState<TArtifact, TEntity>(art, entity, connector, nextPass);
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/// <param name="entity">The entity.</param>
|
||||
/// <param name="connector">The service connector deploying the artifact.</param>
|
||||
/// <param name="nextPass">The next pass number.</param>
|
||||
public ArtifactDeployState(TArtifact art, TEntity entity, IServiceConnector connector, int nextPass)
|
||||
public ArtifactDeployState(TArtifact art, TEntity? entity, IServiceConnector connector, int nextPass)
|
||||
{
|
||||
Artifact = art;
|
||||
Entity = entity;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Umbraco.Cms.Core.Deploy
|
||||
{
|
||||
@@ -36,6 +36,6 @@ namespace Umbraco.Cms.Core.Deploy
|
||||
/// <summary>
|
||||
/// Gets the dependencies of this artifact.
|
||||
/// </summary>
|
||||
IEnumerable<ArtifactDependency>? Dependencies { get; }
|
||||
IEnumerable<ArtifactDependency> Dependencies { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ namespace Umbraco.Cms.Core.Models.ContentEditing
|
||||
/// If a content item is invariant, this collection will only contain one item, else it will contain all culture variants
|
||||
/// </remarks>
|
||||
[DataMember(Name = "variants")]
|
||||
public IEnumerable<TVariant>? Variants { get; set; }
|
||||
public IEnumerable<TVariant> Variants { get; set; }
|
||||
|
||||
[DataMember(Name = "owner")]
|
||||
public UserProfile? Owner { get; set; }
|
||||
|
||||
@@ -19,12 +19,12 @@ namespace Umbraco.Cms.Core.Models.Mapping
|
||||
_localizedTextService = localizedTextService ?? throw new ArgumentNullException(nameof(localizedTextService));
|
||||
}
|
||||
|
||||
public IEnumerable<TVariant>? Map<TVariant>(IContent source, MapperContext context) where TVariant : ContentVariantDisplay
|
||||
public IEnumerable<TVariant> Map<TVariant>(IContent source, MapperContext context) where TVariant : ContentVariantDisplay
|
||||
{
|
||||
var variesByCulture = source.ContentType.VariesByCulture();
|
||||
var variesBySegment = source.ContentType.VariesBySegment();
|
||||
|
||||
IList<TVariant>? variants = new List<TVariant>();
|
||||
List<TVariant> variants = new ();
|
||||
|
||||
if (!variesByCulture && !variesBySegment)
|
||||
{
|
||||
@@ -38,7 +38,7 @@ namespace Umbraco.Cms.Core.Models.Mapping
|
||||
else if (variesByCulture && !variesBySegment)
|
||||
{
|
||||
var languages = GetLanguages(context);
|
||||
variants = languages?
|
||||
variants = languages
|
||||
.Select(language => CreateVariantDisplay<TVariant>(context, source, language, null))
|
||||
.WhereNotNull()
|
||||
.ToList();
|
||||
@@ -47,7 +47,7 @@ namespace Umbraco.Cms.Core.Models.Mapping
|
||||
{
|
||||
// Segment only
|
||||
var segments = GetSegments(source);
|
||||
variants = segments?
|
||||
variants = segments
|
||||
.Select(segment => CreateVariantDisplay<TVariant>(context, source, null, segment))
|
||||
.WhereNotNull()
|
||||
.ToList();
|
||||
@@ -64,7 +64,7 @@ namespace Umbraco.Cms.Core.Models.Mapping
|
||||
throw new InvalidOperationException("No languages or segments available");
|
||||
}
|
||||
|
||||
variants = languages?
|
||||
variants = languages
|
||||
.SelectMany(language => segments
|
||||
.Select(segment => CreateVariantDisplay<TVariant>(context, source, language, segment)))
|
||||
.WhereNotNull()
|
||||
@@ -74,11 +74,9 @@ namespace Umbraco.Cms.Core.Models.Mapping
|
||||
return SortVariants(variants);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private IList<TVariant>? SortVariants<TVariant>(IList<TVariant>? variants) where TVariant : ContentVariantDisplay
|
||||
private IList<TVariant> SortVariants<TVariant>(IList<TVariant> variants) where TVariant : ContentVariantDisplay
|
||||
{
|
||||
if (variants == null || variants.Count <= 1)
|
||||
if (variants.Count <= 1)
|
||||
{
|
||||
return variants;
|
||||
}
|
||||
|
||||
@@ -155,9 +155,9 @@ namespace Umbraco.Cms.Core.Models.Mapping
|
||||
return prop;
|
||||
}
|
||||
|
||||
internal IDictionary<string, bool> GetMemberGroupValue(string? username)
|
||||
internal IDictionary<string, bool> GetMemberGroupValue(string username)
|
||||
{
|
||||
IEnumerable<string>? userRoles = username.IsNullOrWhiteSpace() ? null : _memberService.GetAllRoles(username);
|
||||
IEnumerable<string> userRoles = _memberService.GetAllRoles(username);
|
||||
|
||||
// create a dictionary of all roles (except internal roles) + "false"
|
||||
var result = _memberGroupService.GetAll()
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Umbraco.Cms.Core.Models.Membership
|
||||
{
|
||||
public class MemberExportModel
|
||||
@@ -10,10 +7,10 @@ namespace Umbraco.Cms.Core.Models.Membership
|
||||
public string? Name { get; set; }
|
||||
public string? Username { get; set; }
|
||||
public string? Email { get; set; }
|
||||
public List<string?>? Groups { get; set; }
|
||||
public List<string> Groups { get; set; } = new ();
|
||||
public string? ContentTypeAlias { get; set; }
|
||||
public DateTime CreateDate { get; set; }
|
||||
public DateTime UpdateDate { get; set; }
|
||||
public List<MemberExportProperty>? Properties { get; set; }
|
||||
public List<MemberExportProperty> Properties { get; set; } = new ();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,9 @@ namespace Umbraco.Cms.Core.Persistence.Repositories
|
||||
{
|
||||
ITemplate? Get(string? alias);
|
||||
|
||||
IEnumerable<ITemplate>? GetAll(params string[] aliases);
|
||||
IEnumerable<ITemplate> GetAll(params string[] aliases);
|
||||
|
||||
IEnumerable<ITemplate>? GetChildren(int masterTemplateId);
|
||||
IEnumerable<ITemplate> GetChildren(int masterTemplateId);
|
||||
|
||||
IEnumerable<ITemplate> GetDescendants(int masterTemplateId);
|
||||
}
|
||||
|
||||
@@ -412,11 +412,11 @@ namespace Umbraco.Cms.Core.Services
|
||||
/// Gets a list of all <see cref="ITemplate"/> objects
|
||||
/// </summary>
|
||||
/// <returns>An enumerable list of <see cref="ITemplate"/> objects</returns>
|
||||
public IEnumerable<ITemplate>? GetTemplates(params string[] aliases)
|
||||
public IEnumerable<ITemplate> GetTemplates(params string[] aliases)
|
||||
{
|
||||
using (ICoreScope scope = ScopeProvider.CreateCoreScope(autoComplete: true))
|
||||
{
|
||||
return _templateRepository.GetAll(aliases)?.OrderBy(x => x.Name);
|
||||
return _templateRepository.GetAll(aliases).OrderBy(x => x.Name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -424,11 +424,11 @@ namespace Umbraco.Cms.Core.Services
|
||||
/// Gets a list of all <see cref="ITemplate"/> objects
|
||||
/// </summary>
|
||||
/// <returns>An enumerable list of <see cref="ITemplate"/> objects</returns>
|
||||
public IEnumerable<ITemplate>? GetTemplates(int masterTemplateId)
|
||||
public IEnumerable<ITemplate> GetTemplates(int masterTemplateId)
|
||||
{
|
||||
using (ICoreScope scope = ScopeProvider.CreateCoreScope(autoComplete: true))
|
||||
{
|
||||
return _templateRepository.GetChildren(masterTemplateId)?.OrderBy(x => x.Name);
|
||||
return _templateRepository.GetChildren(masterTemplateId).OrderBy(x => x.Name);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -199,13 +199,13 @@ namespace Umbraco.Cms.Core.Services
|
||||
/// Gets a list of all <see cref="ITemplate"/> objects
|
||||
/// </summary>
|
||||
/// <returns>An enumerable list of <see cref="ITemplate"/> objects</returns>
|
||||
IEnumerable<ITemplate>? GetTemplates(params string[] aliases);
|
||||
IEnumerable<ITemplate> GetTemplates(params string[] aliases);
|
||||
|
||||
/// <summary>
|
||||
/// Gets a list of all <see cref="ITemplate"/> objects
|
||||
/// </summary>
|
||||
/// <returns>An enumerable list of <see cref="ITemplate"/> objects</returns>
|
||||
IEnumerable<ITemplate>? GetTemplates(int masterTemplateId);
|
||||
IEnumerable<ITemplate> GetTemplates(int masterTemplateId);
|
||||
|
||||
/// <summary>
|
||||
/// Gets a <see cref="ITemplate"/> object by its alias.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Umbraco.Cms.Core.Models;
|
||||
|
||||
@@ -59,7 +59,7 @@ namespace Umbraco.Cms.Core.Services
|
||||
/// </summary>
|
||||
/// <param name="parentId">Id of the parent</param>
|
||||
/// <returns>An enumerable list of <see cref="IDictionaryItem"/> objects</returns>
|
||||
IEnumerable<IDictionaryItem>? GetDictionaryItemChildren(Guid parentId);
|
||||
IEnumerable<IDictionaryItem> GetDictionaryItemChildren(Guid parentId);
|
||||
|
||||
/// <summary>
|
||||
/// Gets a list of descendants for a <see cref="IDictionaryItem"/>
|
||||
@@ -72,7 +72,7 @@ namespace Umbraco.Cms.Core.Services
|
||||
/// Gets the root/top <see cref="IDictionaryItem"/> objects
|
||||
/// </summary>
|
||||
/// <returns>An enumerable list of <see cref="IDictionaryItem"/> objects</returns>
|
||||
IEnumerable<IDictionaryItem>? GetRootDictionaryItems();
|
||||
IEnumerable<IDictionaryItem> GetRootDictionaryItems();
|
||||
|
||||
/// <summary>
|
||||
/// Checks if a <see cref="IDictionaryItem"/> with given key exists
|
||||
|
||||
@@ -130,7 +130,7 @@ namespace Umbraco.Cms.Core.Services
|
||||
/// Gets a collection of <see cref="IMedia"/> objects, which reside at the first level / root
|
||||
/// </summary>
|
||||
/// <returns>An Enumerable list of <see cref="IMedia"/> objects</returns>
|
||||
IEnumerable<IMedia>? GetRootMedia();
|
||||
IEnumerable<IMedia> GetRootMedia();
|
||||
|
||||
/// <summary>
|
||||
/// Gets a collection of an <see cref="IMedia"/> objects, which resides in the Recycle Bin
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Umbraco.Cms.Core.Models;
|
||||
using Umbraco.Cms.Core.Persistence.Querying;
|
||||
@@ -127,14 +127,14 @@ namespace Umbraco.Cms.Core.Services
|
||||
/// </summary>
|
||||
/// <param name="memberTypeAlias">Alias of the MemberType</param>
|
||||
/// <returns><see cref="IEnumerable{IMember}"/></returns>
|
||||
IEnumerable<IMember>? GetMembersByMemberType(string memberTypeAlias);
|
||||
IEnumerable<IMember> GetMembersByMemberType(string memberTypeAlias);
|
||||
|
||||
/// <summary>
|
||||
/// Gets all Members for the MemberType id
|
||||
/// </summary>
|
||||
/// <param name="memberTypeId">Id of the MemberType</param>
|
||||
/// <returns><see cref="IEnumerable{IMember}"/></returns>
|
||||
IEnumerable<IMember>? GetMembersByMemberType(int memberTypeId);
|
||||
IEnumerable<IMember> GetMembersByMemberType(int memberTypeId);
|
||||
|
||||
/// <summary>
|
||||
/// Gets all Members within the specified MemberGroup name
|
||||
|
||||
@@ -12,9 +12,9 @@ namespace Umbraco.Cms.Core.Services
|
||||
|
||||
IEnumerable<IMemberGroup> GetAllRoles();
|
||||
|
||||
IEnumerable<string?>? GetAllRoles(int memberId);
|
||||
IEnumerable<string> GetAllRoles(int memberId);
|
||||
|
||||
IEnumerable<string> GetAllRoles(string? username);
|
||||
IEnumerable<string> GetAllRoles(string username);
|
||||
|
||||
IEnumerable<int> GetAllRolesIds();
|
||||
|
||||
|
||||
@@ -179,18 +179,15 @@ namespace Umbraco.Cms.Core.Services
|
||||
/// </summary>
|
||||
/// <param name="parentId">Id of the parent</param>
|
||||
/// <returns>An enumerable list of <see cref="IDictionaryItem"/> objects</returns>
|
||||
public IEnumerable<IDictionaryItem>? GetDictionaryItemChildren(Guid parentId)
|
||||
public IEnumerable<IDictionaryItem> GetDictionaryItemChildren(Guid parentId)
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateCoreScope(autoComplete: true))
|
||||
{
|
||||
var query = Query<IDictionaryItem>().Where(x => x.ParentId == parentId);
|
||||
var items = _dictionaryRepository.Get(query)?.ToArray();
|
||||
if (items is not null)
|
||||
{
|
||||
//ensure the lazy Language callback is assigned
|
||||
foreach (var item in items)
|
||||
EnsureDictionaryItemLanguageCallback(item);
|
||||
}
|
||||
var items = _dictionaryRepository.Get(query).ToArray();
|
||||
//ensure the lazy Language callback is assigned
|
||||
foreach (var item in items)
|
||||
EnsureDictionaryItemLanguageCallback(item);
|
||||
|
||||
return items;
|
||||
}
|
||||
@@ -217,18 +214,15 @@ namespace Umbraco.Cms.Core.Services
|
||||
/// Gets the root/top <see cref="IDictionaryItem"/> objects
|
||||
/// </summary>
|
||||
/// <returns>An enumerable list of <see cref="IDictionaryItem"/> objects</returns>
|
||||
public IEnumerable<IDictionaryItem>? GetRootDictionaryItems()
|
||||
public IEnumerable<IDictionaryItem> GetRootDictionaryItems()
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateCoreScope(autoComplete: true))
|
||||
{
|
||||
var query = Query<IDictionaryItem>().Where(x => x.ParentId == null);
|
||||
var items = _dictionaryRepository.Get(query)?.ToArray();
|
||||
if (items is not null)
|
||||
{
|
||||
//ensure the lazy Language callback is assigned
|
||||
foreach (var item in items)
|
||||
EnsureDictionaryItemLanguageCallback(item);
|
||||
}
|
||||
var items = _dictionaryRepository.Get(query).ToArray();
|
||||
//ensure the lazy Language callback is assigned
|
||||
foreach (var item in items)
|
||||
EnsureDictionaryItemLanguageCallback(item);
|
||||
return items;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -590,7 +590,7 @@ namespace Umbraco.Cms.Core.Services
|
||||
/// Gets a collection of <see cref="IMedia"/> objects, which reside at the first level / root
|
||||
/// </summary>
|
||||
/// <returns>An Enumerable list of <see cref="IMedia"/> objects</returns>
|
||||
public IEnumerable<IMedia>? GetRootMedia()
|
||||
public IEnumerable<IMedia> GetRootMedia()
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateCoreScope(autoComplete: true))
|
||||
{
|
||||
|
||||
@@ -406,7 +406,7 @@ namespace Umbraco.Cms.Core.Services
|
||||
/// </summary>
|
||||
/// <param name="memberTypeAlias">Alias of the MemberType</param>
|
||||
/// <returns><see cref="IEnumerable{IMember}"/></returns>
|
||||
public IEnumerable<IMember>? GetMembersByMemberType(string memberTypeAlias)
|
||||
public IEnumerable<IMember> GetMembersByMemberType(string memberTypeAlias)
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateCoreScope(autoComplete: true))
|
||||
{
|
||||
@@ -421,7 +421,7 @@ namespace Umbraco.Cms.Core.Services
|
||||
/// </summary>
|
||||
/// <param name="memberTypeId">Id of the MemberType</param>
|
||||
/// <returns><see cref="IEnumerable{IMember}"/></returns>
|
||||
public IEnumerable<IMember>? GetMembersByMemberType(int memberTypeId)
|
||||
public IEnumerable<IMember> GetMembersByMemberType(int memberTypeId)
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateCoreScope(autoComplete: true))
|
||||
{
|
||||
@@ -894,17 +894,17 @@ namespace Umbraco.Cms.Core.Services
|
||||
/// </summary>
|
||||
/// <param name="memberId"></param>
|
||||
/// <returns>A list of member roles</returns>
|
||||
public IEnumerable<string?>? GetAllRoles(int memberId)
|
||||
public IEnumerable<string> GetAllRoles(int memberId)
|
||||
{
|
||||
using (ICoreScope scope = ScopeProvider.CreateCoreScope(autoComplete: true))
|
||||
{
|
||||
scope.ReadLock(Constants.Locks.MemberTree);
|
||||
var result = _memberGroupRepository.GetMemberGroupsForMember(memberId);
|
||||
return result.Select(x => x.Name).Distinct();
|
||||
return result.Select(x => x.Name).WhereNotNull().Distinct();
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<string> GetAllRoles(string? username)
|
||||
public IEnumerable<string> GetAllRoles(string username)
|
||||
{
|
||||
using (ICoreScope scope = ScopeProvider.CreateCoreScope(autoComplete: true))
|
||||
{
|
||||
@@ -1107,7 +1107,7 @@ namespace Umbraco.Cms.Core.Services
|
||||
Name = member.Name,
|
||||
Username = member.Username,
|
||||
Email = member.Email,
|
||||
Groups = GetAllRoles(member.Id)?.ToList(),
|
||||
Groups = GetAllRoles(member.Id).ToList(),
|
||||
ContentTypeAlias = member.ContentTypeAlias,
|
||||
CreateDate = member.CreateDate,
|
||||
UpdateDate = member.UpdateDate,
|
||||
|
||||
@@ -504,7 +504,7 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
|
||||
|
||||
public ITemplate? Get(string? alias) => GetAll(alias)?.FirstOrDefault();
|
||||
|
||||
public IEnumerable<ITemplate>? GetAll(params string?[] aliases)
|
||||
public IEnumerable<ITemplate> GetAll(params string?[] aliases)
|
||||
{
|
||||
//We must call the base (normal) GetAll method
|
||||
// which is cached. This is a specialized method and unfortunately with the params[] it
|
||||
@@ -515,26 +515,26 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
|
||||
}
|
||||
|
||||
//return from base.GetAll, this is all cached
|
||||
return base.GetMany()?.Where(x => aliases.WhereNotNull().InvariantContains(x.Alias));
|
||||
return base.GetMany().Where(x => aliases.WhereNotNull().InvariantContains(x.Alias));
|
||||
}
|
||||
|
||||
public IEnumerable<ITemplate>? GetChildren(int masterTemplateId)
|
||||
public IEnumerable<ITemplate> GetChildren(int masterTemplateId)
|
||||
{
|
||||
//return from base.GetAll, this is all cached
|
||||
ITemplate[]? all = base.GetMany()?.ToArray();
|
||||
ITemplate[] all = base.GetMany().ToArray();
|
||||
|
||||
if (masterTemplateId <= 0)
|
||||
{
|
||||
return all?.Where(x => x.MasterTemplateAlias.IsNullOrWhiteSpace());
|
||||
return all.Where(x => x.MasterTemplateAlias.IsNullOrWhiteSpace());
|
||||
}
|
||||
|
||||
ITemplate? parent = all?.FirstOrDefault(x => x.Id == masterTemplateId);
|
||||
ITemplate? parent = all.FirstOrDefault(x => x.Id == masterTemplateId);
|
||||
if (parent == null)
|
||||
{
|
||||
return Enumerable.Empty<ITemplate>();
|
||||
}
|
||||
|
||||
IEnumerable<ITemplate>? children = all?.Where(x => x.MasterTemplateAlias.InvariantEquals(parent.Alias));
|
||||
IEnumerable<ITemplate> children = all.Where(x => x.MasterTemplateAlias.InvariantEquals(parent.Alias));
|
||||
return children;
|
||||
}
|
||||
|
||||
|
||||
@@ -160,8 +160,10 @@ namespace Umbraco.Cms.Web.BackOffice.Mapping
|
||||
target.Urls = GetUrls(source);
|
||||
target.Variants = _contentVariantMapper.Map<TVariant>(source, context);
|
||||
|
||||
target.ContentDto = new ContentPropertyCollectionDto();
|
||||
target.ContentDto.Properties = context.MapEnumerable<IProperty, ContentPropertyDto>(source.Properties).WhereNotNull();
|
||||
target.ContentDto = new ContentPropertyCollectionDto
|
||||
{
|
||||
Properties = context.MapEnumerable<IProperty, ContentPropertyDto>(source.Properties).WhereNotNull()
|
||||
};
|
||||
}
|
||||
|
||||
// Umbraco.Code.MapAll -Segment -Language -DisplayName
|
||||
|
||||
Reference in New Issue
Block a user