using System; using System.Collections.Generic; using System.Threading; using Umbraco.Core; using Umbraco.Core.Media; using Umbraco.Web.Mvc; using Umbraco.Web.Routing; using Umbraco.Web.Trees; using Umbraco.Web.WebApi; using umbraco; using umbraco.interfaces; namespace Umbraco.Web { /// /// Extension methods for the PluginTypeResolver /// public static class PluginManagerExtensions { /// /// Returns all available TreeApiController's in application that are attribute with TreeAttribute /// /// /// internal static IEnumerable ResolveAttributedTreeControllers(this PluginManager resolver) { //don't cache the result of this because it is only used once during app startup, caching will just add a bit more mem overhead for no reason return resolver.ResolveTypesWithAttribute(cacheResult: false); } internal static IEnumerable ResolveSurfaceControllers(this PluginManager resolver) { return resolver.ResolveTypes(); } internal static IEnumerable ResolveUmbracoApiControllers(this PluginManager resolver) { return resolver.ResolveTypes(); } /// /// Returns all available ITrees in application /// /// /// internal static IEnumerable ResolveTrees(this PluginManager resolver) { return resolver.ResolveTypes(); } /// /// Returns all classes attributed with legacy RestExtension attribute /// /// /// internal static IEnumerable ResolveLegacyRestExtensions(this PluginManager resolver) { return resolver.ResolveAttributedTypes(); } /// /// Returns all classes attributed with RestExtensionAttribute attribute /// /// /// internal static IEnumerable ResolveRestExtensions(this PluginManager resolver) { return resolver.ResolveAttributedTypes(); } /// /// Returns all classes attributed with XsltExtensionAttribute attribute /// /// /// internal static IEnumerable ResolveXsltExtensions(this PluginManager resolver) { return resolver.ResolveAttributedTypes(); } /// /// Returns all IThumbnailProvider classes /// /// /// internal static IEnumerable ResolveThumbnailProviders(this PluginManager resolver) { return resolver.ResolveTypes(); } /// /// Returns all IImageUrlProvider classes /// /// /// internal static IEnumerable ResolveImageUrlProviders(this PluginManager resolver) { return resolver.ResolveTypes(); } } }