Bram
02/27/2025, 1:47 PMpublic class DynamicRootByContentType
: IDynamicRootQueryStep
{
private readonly IContentService _contentService;
private readonly string _alias;
private readonly string _contentTypeAlias;
public DynamicRootByContentType(IContentService contentService, string alias, string contentTypeAlias)
{
_contentService = contentService;
_alias = alias;
_contentTypeAlias = contentTypeAlias;
}
public Task<Attempt<ICollection<Guid>>> ExecuteAsync(ICollection<Guid> origins, DynamicRootQueryStep filter)
{
if (!string.Equals(filter.Alias, _alias, StringComparison.OrdinalIgnoreCase))
{
return Task.FromResult(Attempt<ICollection<Guid>>.Fail());
}
var contentAtRoot = _contentService.GetRootContent().Where(r => string.Equals(r.ContentType.Alias, _contentTypeAlias, StringComparison.Ordinal));
return Task.FromResult(Attempt<ICollection<Guid>>.Succeed(contentAtRoot.Select(car => car.Key).ToList()));
}
}