namespace Toolkit.Framework.Foundation; public class ContentTemplateDescriptorProvider : IContentTemplateDescriptorProvider { private readonly IReadOnlyCollection descriptors; public ContentTemplateDescriptorProvider(IReadOnlyCollection descriptors) { this.descriptors = descriptors; } public IContentTemplateDescriptor? Get(string name) { if (descriptors.FirstOrDefault(x => x.Name == name) is IContentTemplateDescriptor descriptor) { return descriptor; } return null; } public IContentTemplateDescriptor? Get(Type type) { if (descriptors.FirstOrDefault(x => x.ContentType == type) is IContentTemplateDescriptor descriptor) { return descriptor; } return null; } public IContentTemplateDescriptor? Get() { if (descriptors.FirstOrDefault(x => x.ContentType == typeof(T)) is IContentTemplateDescriptor descriptor) { return descriptor; } return null; } }