Files
Toolkit2/Toolkit.Foundation/ContentFactory.cs
T
2024-07-01 21:41:13 +01:00

28 lines
938 B
C#

namespace Toolkit.Foundation;
public class ContentFactory(IServiceProvider provider,
IServiceFactory factory) : IContentFactory
{
public Task<object?> CreateAsync(IContentTemplateDescriptor descriptor,
object[] parameters)
{
object? content = parameters is { Length: > 0 }
? factory.Create(descriptor.ContentType, args =>
{
if (args is IInitialization initialization)
{
initialization.Initialize();
}
}, parameters)
: provider.GetRequiredKeyedService(descriptor.ContentType, args =>
{
if (args is IInitialization initialization)
{
initialization.Initialize();
}
}, descriptor.Key);
return Task.FromResult<object?>(content);
}
}