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