aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Ullmer <daullmer@gmail.com>2020-08-31 17:53:55 +0200
committerDavid Ullmer <daullmer@gmail.com>2020-08-31 17:53:55 +0200
commit7f79f2ee0e1fe3b5f0edb22677df9f9235d883fa (patch)
treecff633ebdd83b9703d722f706fde74703660bee4
parent025ee2163ffea826083fdea6a084090733ab8fff (diff)
Use .Distinct on assembly
-rw-r--r--Emby.Server.Implementations/ApplicationHost.cs10
-rw-r--r--Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs6
-rw-r--r--Jellyfin.Server/Startup.cs2
3 files changed, 10 insertions, 8 deletions
diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs
index 62c2e55c2..d2f016f7d 100644
--- a/Emby.Server.Implementations/ApplicationHost.cs
+++ b/Emby.Server.Implementations/ApplicationHost.cs
@@ -1387,15 +1387,17 @@ namespace Emby.Server.Implementations
public IEnumerable<Assembly> GetApiPluginAssemblies()
{
- var types = _allConcreteTypes
+ var assemblies = _allConcreteTypes
.Where(i => typeof(ControllerBase).IsAssignableFrom(i))
+ .Select(i => i.Assembly)
.Distinct();
- foreach (var type in types)
+ foreach (var assembly in assemblies)
{
- Logger.LogDebug("Found API endpoints in plugin {name}", type.Assembly.FullName);
- yield return type.Assembly;
+ Logger.LogDebug("Found API endpoints in plugin {name}", assembly.FullName);
}
+
+ return assemblies;
}
public virtual void LaunchUrl(string url)
diff --git a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs
index 13c2d6055..1c872efe0 100644
--- a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs
+++ b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs
@@ -136,9 +136,9 @@ namespace Jellyfin.Server.Extensions
/// </summary>
/// <param name="serviceCollection">The service collection.</param>
/// <param name="baseUrl">The base url for the API.</param>
- /// <param name="applicationHost">The application host.</param>
+ /// <param name="pluginAssemblies">An IEnumberable containing all plugin assemblies with API controllers.</param>
/// <returns>The MVC builder.</returns>
- public static IMvcBuilder AddJellyfinApi(this IServiceCollection serviceCollection, string baseUrl, IApplicationHost applicationHost)
+ public static IMvcBuilder AddJellyfinApi(this IServiceCollection serviceCollection, string baseUrl, IEnumerable<Assembly> pluginAssemblies)
{
IMvcBuilder mvcBuilder = serviceCollection
.AddCors(options =>
@@ -179,7 +179,7 @@ namespace Jellyfin.Server.Extensions
options.JsonSerializerOptions.PropertyNamingPolicy = jsonOptions.PropertyNamingPolicy;
});
- foreach (Assembly pluginAssembly in applicationHost.GetApiPluginAssemblies())
+ foreach (Assembly pluginAssembly in pluginAssemblies)
{
mvcBuilder.AddApplicationPart(pluginAssembly);
}
diff --git a/Jellyfin.Server/Startup.cs b/Jellyfin.Server/Startup.cs
index 7c54334d1..ef255fb60 100644
--- a/Jellyfin.Server/Startup.cs
+++ b/Jellyfin.Server/Startup.cs
@@ -41,7 +41,7 @@ namespace Jellyfin.Server
{
services.AddResponseCompression();
services.AddHttpContextAccessor();
- services.AddJellyfinApi(_serverConfigurationManager.Configuration.BaseUrl.TrimStart('/'), _applicationHost);
+ services.AddJellyfinApi(_serverConfigurationManager.Configuration.BaseUrl.TrimStart('/'), _applicationHost.GetApiPluginAssemblies());
services.AddJellyfinApiSwagger();