IClientStartup implementation

This commit is contained in:
Pavel Vesely
2020-05-11 13:10:22 +02:00
parent 7c814a67b3
commit da73d519d7
7 changed files with 80 additions and 12 deletions

View File

@ -8,21 +8,23 @@ using Microsoft.Extensions.Hosting;
using Oqtane.Extensions;
using Oqtane.Infrastructure;
using Oqtane.Modules;
using Oqtane.Services;
using Oqtane.Shared;
using Oqtane.UI;
// ReSharper disable once CheckNamespace
namespace Microsoft.Extensions.DependencyInjection
{
public static class OqtaneServiceCollectionExtensions
{
public static IServiceCollection AddOqtaneParts(this IServiceCollection services)
public static IServiceCollection AddOqtaneParts(this IServiceCollection services, Runtime runtime)
{
LoadAssemblies();
services.AddOqtaneServices();
services.AddOqtaneServices(runtime);
return services;
}
private static IServiceCollection AddOqtaneServices(this IServiceCollection services)
private static IServiceCollection AddOqtaneServices(this IServiceCollection services, Runtime runtime)
{
if (services is null)
{
@ -59,6 +61,13 @@ namespace Microsoft.Extensions.DependencyInjection
{
startup.ConfigureServices(services);
}
if (runtime == Runtime.Server)
{
assembly.GetInstances<IClientStartup>()
.ToList()
.ForEach(x => x.ConfigureServices(services));
}
}
return services;
}