Decoupling more things, mostly to do with the PluginManager and logging which now requires an IServiceProvider so have created a simple instance of that.
This commit is contained in:
@@ -28,7 +28,7 @@ namespace Umbraco.Web.Editors
|
||||
{
|
||||
public IEnumerable<Stylesheet> GetAll()
|
||||
{
|
||||
return Services.FileService.GetStylesheetsAtPath()
|
||||
return Services.FileService.GetStylesheets()
|
||||
.Select(x =>
|
||||
new Stylesheet() {
|
||||
Name = x.Alias,
|
||||
|
||||
@@ -257,7 +257,7 @@ namespace Umbraco.Web.Install.Controllers
|
||||
|
||||
internal InstallSetupResult ExecuteStep(InstallSetupStep step, JToken instruction)
|
||||
{
|
||||
using (DisposableTimer.TraceDuration<InstallApiController>("Executing installation step: " + step.Name, "Step completed"))
|
||||
using (ApplicationContext.ProfilingLogger.TraceDuration<InstallApiController>("Executing installation step: " + step.Name, "Step completed"))
|
||||
{
|
||||
var model = instruction == null ? null : instruction.ToObject(step.StepType);
|
||||
var genericStepType = typeof(InstallSetupStep<>);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Media;
|
||||
using Umbraco.Core.ObjectResolution;
|
||||
using Umbraco.Web.Media.ImageUrlProviders;
|
||||
@@ -9,12 +10,15 @@ namespace Umbraco.Web.Media
|
||||
{
|
||||
internal sealed class ImageUrlProviderResolver : ManyObjectsResolverBase<ImageUrlProviderResolver, IImageUrlProvider>
|
||||
{
|
||||
internal ImageUrlProviderResolver(IEnumerable<Type> value) : base(value) { }
|
||||
internal ImageUrlProviderResolver(IServiceProvider serviceProvider, ILogger logger, IEnumerable<Type> value)
|
||||
: base(serviceProvider, logger, value)
|
||||
{
|
||||
}
|
||||
|
||||
public IImageUrlProvider GetProvider(string provider)
|
||||
{
|
||||
return string.IsNullOrEmpty(provider) ?
|
||||
Values.First(v => v.Name.Equals(ImageUrlProvider.DefaultName, StringComparison.InvariantCultureIgnoreCase)) :
|
||||
return string.IsNullOrEmpty(provider) ?
|
||||
Values.First(v => v.Name.Equals(ImageUrlProvider.DefaultName, StringComparison.InvariantCultureIgnoreCase)) :
|
||||
Values.First(v => v.Name.Equals(provider, StringComparison.InvariantCultureIgnoreCase));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Media;
|
||||
using Umbraco.Core.ObjectResolution;
|
||||
using umbraco.BusinessLogic;
|
||||
@@ -13,14 +14,14 @@ namespace Umbraco.Web.Media.ThumbnailProviders
|
||||
{
|
||||
internal sealed class ThumbnailProvidersResolver : ManyObjectsResolverBase<ThumbnailProvidersResolver, IThumbnailProvider>
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
/// <param name="providers"></param>
|
||||
internal ThumbnailProvidersResolver(IEnumerable<Type> providers)
|
||||
: base(providers)
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
/// <param name="serviceProvider"></param>
|
||||
/// <param name="logger"></param>
|
||||
/// <param name="providers"></param>
|
||||
internal ThumbnailProvidersResolver(IServiceProvider serviceProvider, ILogger logger, IEnumerable<Type> providers)
|
||||
: base(serviceProvider, logger, providers)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.ObjectResolution;
|
||||
|
||||
namespace Umbraco.Web.Mvc
|
||||
@@ -9,12 +10,14 @@ namespace Umbraco.Web.Mvc
|
||||
/// </summary>
|
||||
public sealed class FilteredControllerFactoriesResolver : ManyObjectsResolverBase<FilteredControllerFactoriesResolver, IFilteredControllerFactory>
|
||||
{
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
/// <param name="factories"></param>
|
||||
internal FilteredControllerFactoriesResolver(IEnumerable<Type> factories)
|
||||
: base(factories)
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
/// <param name="logger"></param>
|
||||
/// <param name="factories"></param>
|
||||
/// <param name="serviceProvider"></param>
|
||||
internal FilteredControllerFactoriesResolver(IServiceProvider serviceProvider, ILogger logger, IEnumerable<Type> factories)
|
||||
: base(serviceProvider, logger, factories)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -8,101 +8,104 @@ using Umbraco.Web.WebApi;
|
||||
|
||||
namespace Umbraco.Web.Mvc
|
||||
{
|
||||
/// <summary>
|
||||
/// A base class for all plugin controllers to inherit from
|
||||
/// </summary>
|
||||
public abstract class PluginController : Controller
|
||||
{
|
||||
/// <summary>
|
||||
/// stores the metadata about plugin controllers
|
||||
/// </summary>
|
||||
private static readonly ConcurrentDictionary<Type, PluginControllerMetadata> MetadataStorage = new ConcurrentDictionary<Type, PluginControllerMetadata>();
|
||||
/// <summary>
|
||||
/// A base class for all plugin controllers to inherit from
|
||||
/// </summary>
|
||||
public abstract class PluginController : Controller
|
||||
{
|
||||
/// <summary>
|
||||
/// stores the metadata about plugin controllers
|
||||
/// </summary>
|
||||
private static readonly ConcurrentDictionary<Type, PluginControllerMetadata> MetadataStorage = new ConcurrentDictionary<Type, PluginControllerMetadata>();
|
||||
|
||||
|
||||
protected PluginController(ILogger logger, UmbracoContext umbracoContext)
|
||||
/// <summary>
|
||||
/// Default constructor
|
||||
/// </summary>
|
||||
/// <param name="umbracoContext"></param>
|
||||
protected PluginController(UmbracoContext umbracoContext)
|
||||
{
|
||||
if (logger == null) throw new ArgumentNullException("logger");
|
||||
if (umbracoContext == null) throw new ArgumentNullException("umbracoContext");
|
||||
Logger = logger;
|
||||
UmbracoContext = umbracoContext;
|
||||
InstanceId = Guid.NewGuid();
|
||||
Umbraco = new UmbracoHelper(umbracoContext);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Default constructor
|
||||
/// </summary>
|
||||
/// <param name="umbracoContext"></param>
|
||||
protected PluginController(UmbracoContext umbracoContext)
|
||||
: this(LoggerResolver.Current.Logger, umbracoContext)
|
||||
{
|
||||
}
|
||||
/// <summary>
|
||||
/// Useful for debugging
|
||||
/// </summary>
|
||||
internal Guid InstanceId { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Useful for debugging
|
||||
/// </summary>
|
||||
internal Guid InstanceId { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Returns an UmbracoHelper object
|
||||
/// </summary>
|
||||
public UmbracoHelper Umbraco { get; private set; }
|
||||
/// <summary>
|
||||
/// Returns an UmbracoHelper object
|
||||
/// </summary>
|
||||
public UmbracoHelper Umbraco { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Returns an ILogger
|
||||
/// </summary>
|
||||
public ILogger Logger { get; private set; }
|
||||
public ILogger Logger
|
||||
{
|
||||
get { return ProfilingLogger.Logger; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the current UmbracoContext
|
||||
/// </summary>
|
||||
public UmbracoContext UmbracoContext { get; private set; }
|
||||
/// <summary>
|
||||
/// Returns a ProfilingLogger
|
||||
/// </summary>
|
||||
public ProfilingLogger ProfilingLogger
|
||||
{
|
||||
get { return UmbracoContext.Application.ProfilingLogger; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the current ApplicationContext
|
||||
/// </summary>
|
||||
public ApplicationContext ApplicationContext
|
||||
{
|
||||
get { return UmbracoContext.Application; }
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns the current UmbracoContext
|
||||
/// </summary>
|
||||
public UmbracoContext UmbracoContext { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Returns a ServiceContext
|
||||
/// </summary>
|
||||
public ServiceContext Services
|
||||
{
|
||||
get { return ApplicationContext.Services; }
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns the current ApplicationContext
|
||||
/// </summary>
|
||||
public ApplicationContext ApplicationContext
|
||||
{
|
||||
get { return UmbracoContext.Application; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a DatabaseContext
|
||||
/// </summary>
|
||||
public DatabaseContext DatabaseContext
|
||||
{
|
||||
get { return ApplicationContext.DatabaseContext; }
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a ServiceContext
|
||||
/// </summary>
|
||||
public ServiceContext Services
|
||||
{
|
||||
get { return ApplicationContext.Services; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the metadata for this instance
|
||||
/// </summary>
|
||||
internal PluginControllerMetadata Metadata
|
||||
{
|
||||
get { return GetMetadata(this.GetType()); }
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a DatabaseContext
|
||||
/// </summary>
|
||||
public DatabaseContext DatabaseContext
|
||||
{
|
||||
get { return ApplicationContext.DatabaseContext; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the metadata for a PluginController
|
||||
/// </summary>
|
||||
/// <param name="type"></param>
|
||||
/// <returns></returns>
|
||||
internal static PluginControllerMetadata GetMetadata(Type type)
|
||||
{
|
||||
|
||||
return MetadataStorage.GetOrAdd(type, type1 =>
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns the metadata for this instance
|
||||
/// </summary>
|
||||
internal PluginControllerMetadata Metadata
|
||||
{
|
||||
get { return GetMetadata(this.GetType()); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the metadata for a PluginController
|
||||
/// </summary>
|
||||
/// <param name="type"></param>
|
||||
/// <returns></returns>
|
||||
internal static PluginControllerMetadata GetMetadata(Type type)
|
||||
{
|
||||
|
||||
return MetadataStorage.GetOrAdd(type, type1 =>
|
||||
{
|
||||
var pluginAttribute = type.GetCustomAttribute<PluginControllerAttribute>(false);
|
||||
//check if any inherited class of this type contains the IsBackOffice attribute
|
||||
var backOfficeAttribute = type.GetCustomAttribute<IsBackOfficeAttribute>(true);
|
||||
var backOfficeAttribute = type.GetCustomAttribute<IsBackOfficeAttribute>(true);
|
||||
|
||||
var meta = new PluginControllerMetadata()
|
||||
{
|
||||
@@ -116,8 +119,8 @@ namespace Umbraco.Web.Mvc
|
||||
MetadataStorage.TryAdd(type, meta);
|
||||
|
||||
return meta;
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25,12 +25,6 @@ namespace Umbraco.Web.Mvc
|
||||
ActionInvoker = new RenderActionInvoker();
|
||||
}
|
||||
|
||||
public RenderMvcController(ILogger logger, UmbracoContext umbracoContext)
|
||||
: base(logger, umbracoContext)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public RenderMvcController(UmbracoContext umbracoContext)
|
||||
: base(umbracoContext)
|
||||
{
|
||||
|
||||
@@ -17,17 +17,6 @@ namespace Umbraco.Web.Mvc
|
||||
[MergeParentContextViewData]
|
||||
public abstract class SurfaceController : PluginController
|
||||
{
|
||||
/// <summary>
|
||||
/// Default constructor
|
||||
/// </summary>
|
||||
/// <param name="umbracoContext"></param>
|
||||
/// <param name="logger"></param>
|
||||
protected SurfaceController(ILogger logger, UmbracoContext umbracoContext)
|
||||
: base(logger, umbracoContext)
|
||||
{
|
||||
_membershipHelper = new MembershipHelper(umbracoContext);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Default constructor
|
||||
/// </summary>
|
||||
@@ -106,7 +95,7 @@ namespace Umbraco.Web.Mvc
|
||||
/// <returns></returns>
|
||||
protected UmbracoPageResult CurrentUmbracoPage()
|
||||
{
|
||||
return new UmbracoPageResult();
|
||||
return new UmbracoPageResult(ApplicationContext.ProfilingLogger);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -8,8 +8,8 @@ namespace Umbraco.Web.Mvc
|
||||
{
|
||||
internal sealed class SurfaceControllerResolver : ManyObjectsResolverBase<SurfaceControllerResolver, SurfaceController>
|
||||
{
|
||||
public SurfaceControllerResolver(IEnumerable<Type> surfaceControllers)
|
||||
: base(surfaceControllers)
|
||||
public SurfaceControllerResolver(IServiceProvider serviceProvider, ILogger logger, IEnumerable<Type> surfaceControllers)
|
||||
: base(serviceProvider, logger, surfaceControllers)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -12,17 +12,10 @@ namespace Umbraco.Web.Mvc
|
||||
/// </summary>
|
||||
public abstract class UmbracoController : Controller
|
||||
{
|
||||
protected UmbracoController(ILogger logger, UmbracoContext umbracoContext)
|
||||
{
|
||||
if (logger == null) throw new ArgumentNullException("logger");
|
||||
if (umbracoContext == null) throw new ArgumentNullException("umbracoContext");
|
||||
Logger = logger;
|
||||
UmbracoContext = umbracoContext;
|
||||
}
|
||||
|
||||
protected UmbracoController(UmbracoContext umbracoContext)
|
||||
: this(LoggerResolver.Current.Logger, umbracoContext)
|
||||
{
|
||||
{
|
||||
if (umbracoContext == null) throw new ArgumentNullException("umbracoContext");
|
||||
UmbracoContext = umbracoContext;
|
||||
}
|
||||
|
||||
protected UmbracoController()
|
||||
@@ -44,7 +37,18 @@ namespace Umbraco.Web.Mvc
|
||||
/// <summary>
|
||||
/// Returns an ILogger
|
||||
/// </summary>
|
||||
public ILogger Logger { get; private set; }
|
||||
public ILogger Logger
|
||||
{
|
||||
get { return ProfilingLogger.Logger; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a ProfilingLogger
|
||||
/// </summary>
|
||||
public ProfilingLogger ProfilingLogger
|
||||
{
|
||||
get { return UmbracoContext.Application.ProfilingLogger; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the current UmbracoContext
|
||||
|
||||
@@ -4,6 +4,8 @@ using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Routing;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Profiling;
|
||||
|
||||
namespace Umbraco.Web.Mvc
|
||||
{
|
||||
@@ -12,7 +14,21 @@ namespace Umbraco.Web.Mvc
|
||||
/// </summary>
|
||||
public class UmbracoPageResult : ActionResult
|
||||
{
|
||||
public override void ExecuteResult(ControllerContext context)
|
||||
private readonly ProfilingLogger _profilingLogger;
|
||||
|
||||
public UmbracoPageResult(ProfilingLogger profilingLogger)
|
||||
{
|
||||
_profilingLogger = profilingLogger;
|
||||
}
|
||||
|
||||
[Obsolete("Use the ctor specifying all depenendencies instead")]
|
||||
public UmbracoPageResult()
|
||||
: this(new ProfilingLogger(LoggerResolver.Current.Logger, ProfilerResolver.Current.Profiler))
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void ExecuteResult(ControllerContext context)
|
||||
{
|
||||
ResetRouteData(context.RouteData);
|
||||
|
||||
@@ -52,9 +68,9 @@ namespace Umbraco.Web.Mvc
|
||||
/// <summary>
|
||||
/// Executes the controller action
|
||||
/// </summary>
|
||||
private static void ExecuteControllerAction(ControllerContext context, IController controller)
|
||||
private void ExecuteControllerAction(ControllerContext context, IController controller)
|
||||
{
|
||||
using (DisposableTimer.TraceDuration<UmbracoPageResult>("Executing Umbraco RouteDefinition controller", "Finished"))
|
||||
using (_profilingLogger.TraceDuration<UmbracoPageResult>("Executing Umbraco RouteDefinition controller", "Finished"))
|
||||
{
|
||||
controller.Execute(context.RequestContext);
|
||||
}
|
||||
@@ -75,7 +91,7 @@ namespace Umbraco.Web.Mvc
|
||||
/// </summary>
|
||||
private static void ValidateRouteData(RouteData routeData)
|
||||
{
|
||||
if (!routeData.DataTokens.ContainsKey("umbraco-route-def"))
|
||||
if (routeData.DataTokens.ContainsKey("umbraco-route-def") == false)
|
||||
{
|
||||
throw new InvalidOperationException("Can only use " + typeof(UmbracoPageResult).Name +
|
||||
" in the context of an Http POST when using a SurfaceController form");
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.ObjectResolution;
|
||||
|
||||
namespace Umbraco.Web.Routing
|
||||
@@ -9,22 +10,26 @@ namespace Umbraco.Web.Routing
|
||||
/// </summary>
|
||||
public sealed class ContentFinderResolver : ManyObjectsResolverBase<ContentFinderResolver, IContentFinder>
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ContentFinderResolver"/> class with an initial list of finder types.
|
||||
/// </summary>
|
||||
/// <param name="finders">The list of finder types</param>
|
||||
/// <remarks>The resolver is created by the <c>WebBootManager</c> and thus the constructor remains internal.</remarks>
|
||||
internal ContentFinderResolver(IEnumerable<Type> finders)
|
||||
: base(finders)
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ContentFinderResolver"/> class with an initial list of finder types.
|
||||
/// </summary>
|
||||
/// <param name="serviceProvider"></param>
|
||||
/// <param name="logger"></param>
|
||||
/// <param name="finders">The list of finder types</param>
|
||||
/// <remarks>The resolver is created by the <c>WebBootManager</c> and thus the constructor remains internal.</remarks>
|
||||
internal ContentFinderResolver(IServiceProvider serviceProvider, ILogger logger, IEnumerable<Type> finders)
|
||||
: base(serviceProvider, logger, finders)
|
||||
{ }
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ContentFinderResolver"/> class with an initial list of finder types.
|
||||
/// </summary>
|
||||
/// <param name="finders">The list of finder types</param>
|
||||
/// <remarks>The resolver is created by the <c>WebBootManager</c> and thus the constructor remains internal.</remarks>
|
||||
internal ContentFinderResolver(params Type[] finders)
|
||||
: base(finders)
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ContentFinderResolver"/> class with an initial list of finder types.
|
||||
/// </summary>
|
||||
/// <param name="logger"></param>
|
||||
/// <param name="finders">The list of finder types</param>
|
||||
/// <param name="serviceProvider"></param>
|
||||
/// <remarks>The resolver is created by the <c>WebBootManager</c> and thus the constructor remains internal.</remarks>
|
||||
internal ContentFinderResolver(IServiceProvider serviceProvider, ILogger logger, params Type[] finders)
|
||||
: base(serviceProvider, logger, finders)
|
||||
{ }
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
using Umbraco.Core.ObjectResolution;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.ObjectResolution;
|
||||
|
||||
namespace Umbraco.Web.Routing
|
||||
{
|
||||
@@ -15,19 +15,23 @@ namespace Umbraco.Web.Routing
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="UrlProviderResolver"/> class with an initial list of provider types.
|
||||
/// </summary>
|
||||
/// <param name="logger"></param>
|
||||
/// <param name="providerTypes">The list of provider types.</param>
|
||||
/// <param name="serviceProvider"></param>
|
||||
/// <remarks>The resolver is created by the <c>WebBootManager</c> and thus the constructor remains internal.</remarks>
|
||||
internal UrlProviderResolver(IEnumerable<Type> providerTypes)
|
||||
: base(providerTypes)
|
||||
internal UrlProviderResolver(IServiceProvider serviceProvider, ILogger logger, IEnumerable<Type> providerTypes)
|
||||
: base(serviceProvider, logger, providerTypes)
|
||||
{ }
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="UrlProviderResolver"/> class with an initial list of provider types.
|
||||
/// </summary>
|
||||
/// <param name="logger"></param>
|
||||
/// <param name="providerTypes">The list of provider types.</param>
|
||||
/// <param name="serviceProvider"></param>
|
||||
/// <remarks>The resolver is created by the <c>WebBootManager</c> and thus the constructor remains internal.</remarks>
|
||||
internal UrlProviderResolver(params Type[] providerTypes)
|
||||
: base(providerTypes)
|
||||
internal UrlProviderResolver(IServiceProvider serviceProvider, ILogger logger, params Type[] providerTypes)
|
||||
: base(serviceProvider, logger, providerTypes)
|
||||
{ }
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.ObjectResolution;
|
||||
using Umbraco.Web.PublishedCache;
|
||||
using Umbraco.Web.Routing;
|
||||
@@ -61,11 +62,12 @@ namespace Umbraco.Web.Standalone
|
||||
|
||||
PublishedCachesResolver.Current = new PublishedCachesResolver(caches);
|
||||
|
||||
UrlProviderResolver.Current = new UrlProviderResolver(typeof (DefaultUrlProvider));
|
||||
UrlProviderResolver.Current = new UrlProviderResolver(ServiceProvider, LoggerResolver.Current.Logger, typeof(DefaultUrlProvider));
|
||||
SiteDomainHelperResolver.Current = new SiteDomainHelperResolver(new SiteDomainHelper());
|
||||
|
||||
ContentLastChanceFinderResolver.Current = new ContentLastChanceFinderResolver();
|
||||
ContentFinderResolver.Current = new ContentFinderResolver(
|
||||
ServiceProvider, LoggerResolver.Current.Logger,
|
||||
typeof (ContentFinderByPageIdQuery),
|
||||
typeof (ContentFinderByNiceUrl),
|
||||
typeof (ContentFinderByIdPath),
|
||||
|
||||
@@ -17,21 +17,13 @@ namespace Umbraco.Web.UI.Controls
|
||||
public abstract class UmbracoControl : Control
|
||||
{
|
||||
|
||||
protected UmbracoControl(UmbracoContext umbracoContext)
|
||||
: this(LoggerResolver.Current.Logger, umbracoContext)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Default constructor
|
||||
/// </summary>
|
||||
/// <param name="logger"></param>
|
||||
/// <param name="umbracoContext"></param>
|
||||
protected UmbracoControl(ILogger logger, UmbracoContext umbracoContext)
|
||||
protected UmbracoControl(UmbracoContext umbracoContext)
|
||||
{
|
||||
if (logger == null) throw new ArgumentNullException("logger");
|
||||
if (umbracoContext == null) throw new ArgumentNullException("umbracoContext");
|
||||
Logger = logger;
|
||||
UmbracoContext = umbracoContext;
|
||||
Umbraco = new UmbracoHelper(umbracoContext);
|
||||
}
|
||||
@@ -49,7 +41,22 @@ namespace Umbraco.Web.UI.Controls
|
||||
/// </summary>
|
||||
public UmbracoHelper Umbraco { get; private set; }
|
||||
|
||||
public ILogger Logger { get; private set; }
|
||||
/// <summary>
|
||||
/// Returns an ILogger
|
||||
/// </summary>
|
||||
public ILogger Logger
|
||||
{
|
||||
get { return ProfilingLogger.Logger; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a ProfilingLogger
|
||||
/// </summary>
|
||||
public ProfilingLogger ProfilingLogger
|
||||
{
|
||||
get { return UmbracoContext.Application.ProfilingLogger; }
|
||||
}
|
||||
|
||||
public UmbracoContext UmbracoContext { get; private set; }
|
||||
|
||||
protected ApplicationContext ApplicationContext
|
||||
|
||||
@@ -16,21 +16,13 @@ namespace Umbraco.Web.UI.Controls
|
||||
/// </summary>
|
||||
public abstract class UmbracoUserControl : UserControl
|
||||
{
|
||||
protected UmbracoUserControl(UmbracoContext umbracoContext)
|
||||
: this(LoggerResolver.Current.Logger, umbracoContext)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Default constructor
|
||||
/// </summary>
|
||||
/// <param name="logger"></param>
|
||||
/// <param name="umbracoContext"></param>
|
||||
protected UmbracoUserControl(ILogger logger, UmbracoContext umbracoContext)
|
||||
protected UmbracoUserControl(UmbracoContext umbracoContext)
|
||||
{
|
||||
if (logger == null) throw new ArgumentNullException("logger");
|
||||
if (umbracoContext == null) throw new ArgumentNullException("umbracoContext");
|
||||
Logger = logger;
|
||||
UmbracoContext = umbracoContext;
|
||||
InstanceId = Guid.NewGuid();
|
||||
Umbraco = new UmbracoHelper(umbracoContext);
|
||||
@@ -73,7 +65,21 @@ namespace Umbraco.Web.UI.Controls
|
||||
get { return UmbracoContext.Security; }
|
||||
}
|
||||
|
||||
public ILogger Logger { get; private set; }
|
||||
/// <summary>
|
||||
/// Returns an ILogger
|
||||
/// </summary>
|
||||
public ILogger Logger
|
||||
{
|
||||
get { return ProfilingLogger.Logger; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a ProfilingLogger
|
||||
/// </summary>
|
||||
public ProfilingLogger ProfilingLogger
|
||||
{
|
||||
get { return UmbracoContext.Application.ProfilingLogger; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the current UmbracoContext
|
||||
|
||||
@@ -9,6 +9,7 @@ using Umbraco.Core;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.IO;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Profiling;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Web.Security;
|
||||
using umbraco.BusinessLogic;
|
||||
@@ -28,8 +29,6 @@ namespace Umbraco.Web.UI.Pages
|
||||
|
||||
private ClientTools _clientTools;
|
||||
|
||||
|
||||
|
||||
|
||||
//We won't expose this... people should be using the DatabaseContext for custom queries if they need them.
|
||||
|
||||
@@ -42,12 +41,25 @@ namespace Umbraco.Web.UI.Pages
|
||||
// get { return global::umbraco.BusinessLogic.Application.SqlHelper; }
|
||||
//}
|
||||
|
||||
private ILogger _logger;
|
||||
/// <summary>
|
||||
/// Returns an ILogger
|
||||
/// </summary>
|
||||
public ILogger Logger
|
||||
{
|
||||
get { return _logger ?? (_logger = LoggerResolver.Current.Logger); }
|
||||
get { return ProfilingLogger.Logger; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a ProfilingLogger
|
||||
/// </summary>
|
||||
public ProfilingLogger ProfilingLogger
|
||||
{
|
||||
get { return _logger ?? (_logger = new ProfilingLogger(LoggerResolver.Current.Logger, ProfilerResolver.Current.Profiler)); }
|
||||
}
|
||||
|
||||
private ProfilingLogger _logger;
|
||||
|
||||
|
||||
private UrlHelper _url;
|
||||
/// <summary>
|
||||
/// Returns a UrlHelper
|
||||
|
||||
@@ -22,23 +22,15 @@ namespace Umbraco.Web.WebApi
|
||||
|
||||
}
|
||||
|
||||
protected UmbracoApiController(ILogger logger, UmbracoContext umbracoContext)
|
||||
protected UmbracoApiController(UmbracoContext umbracoContext)
|
||||
{
|
||||
if (logger == null) throw new ArgumentNullException("logger");
|
||||
if (umbracoContext == null) throw new ArgumentNullException("umbracoContext");
|
||||
UmbracoContext = umbracoContext;
|
||||
InstanceId = Guid.NewGuid();
|
||||
Umbraco = new UmbracoHelper(umbracoContext);
|
||||
Logger = logger;
|
||||
_membershipHelper = new MembershipHelper(UmbracoContext);
|
||||
}
|
||||
|
||||
protected UmbracoApiController(UmbracoContext umbracoContext)
|
||||
: this(LoggerResolver.Current.Logger, umbracoContext)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private readonly MembershipHelper _membershipHelper;
|
||||
|
||||
/// <summary>
|
||||
@@ -50,7 +42,21 @@ namespace Umbraco.Web.WebApi
|
||||
return Request.TryGetHttpContext();
|
||||
}
|
||||
|
||||
public ILogger Logger { get; private set; }
|
||||
/// <summary>
|
||||
/// Returns an ILogger
|
||||
/// </summary>
|
||||
public ILogger Logger
|
||||
{
|
||||
get { return ProfilingLogger.Logger; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a ProfilingLogger
|
||||
/// </summary>
|
||||
public ProfilingLogger ProfilingLogger
|
||||
{
|
||||
get { return UmbracoContext.Application.ProfilingLogger; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the current ApplicationContext
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.ObjectResolution;
|
||||
|
||||
namespace Umbraco.Web.WebApi
|
||||
{
|
||||
internal sealed class UmbracoApiControllerResolver : ManyObjectsResolverBase<UmbracoApiControllerResolver, UmbracoApiController>
|
||||
{
|
||||
public UmbracoApiControllerResolver(IEnumerable<Type> apiControllers)
|
||||
: base(apiControllers)
|
||||
public UmbracoApiControllerResolver(IServiceProvider serviceProvider, ILogger logger, IEnumerable<Type> apiControllers)
|
||||
: base(serviceProvider, logger, apiControllers)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -315,7 +315,7 @@ namespace Umbraco.Web
|
||||
{
|
||||
base.InitializeResolvers();
|
||||
|
||||
XsltExtensionsResolver.Current = new XsltExtensionsResolver(() => PluginManager.Current.ResolveXsltExtensions());
|
||||
XsltExtensionsResolver.Current = new XsltExtensionsResolver(ServiceProvider, LoggerResolver.Current.Logger, () => PluginManager.Current.ResolveXsltExtensions());
|
||||
|
||||
//set the default RenderMvcController
|
||||
DefaultRenderMvcControllerResolver.Current = new DefaultRenderMvcControllerResolver(typeof(RenderMvcController));
|
||||
@@ -343,9 +343,11 @@ namespace Umbraco.Web
|
||||
}));
|
||||
|
||||
SurfaceControllerResolver.Current = new SurfaceControllerResolver(
|
||||
ServiceProvider, LoggerResolver.Current.Logger,
|
||||
PluginManager.Current.ResolveSurfaceControllers());
|
||||
|
||||
UmbracoApiControllerResolver.Current = new UmbracoApiControllerResolver(
|
||||
ServiceProvider, LoggerResolver.Current.Logger,
|
||||
PluginManager.Current.ResolveUmbracoApiControllers());
|
||||
|
||||
// both TinyMceValueConverter (in Core) and RteMacroRenderingValueConverter (in Web) will be
|
||||
@@ -366,6 +368,7 @@ namespace Umbraco.Web
|
||||
new NamespaceHttpControllerSelector(GlobalConfiguration.Configuration));
|
||||
|
||||
FilteredControllerFactoriesResolver.Current = new FilteredControllerFactoriesResolver(
|
||||
ServiceProvider, LoggerResolver.Current.Logger,
|
||||
// add all known factories, devs can then modify this list on application
|
||||
// startup either by binding to events or in their own global.asax
|
||||
new[]
|
||||
@@ -374,6 +377,7 @@ namespace Umbraco.Web
|
||||
});
|
||||
|
||||
UrlProviderResolver.Current = new UrlProviderResolver(
|
||||
ServiceProvider, LoggerResolver.Current.Logger,
|
||||
//typeof(AliasUrlProvider), // not enabled by default
|
||||
typeof(DefaultUrlProvider),
|
||||
typeof(CustomRouteUrlProvider)
|
||||
@@ -388,6 +392,7 @@ namespace Umbraco.Web
|
||||
new ContentLastChanceFinderByNotFoundHandlers());
|
||||
|
||||
ContentFinderResolver.Current = new ContentFinderResolver(
|
||||
ServiceProvider, LoggerResolver.Current.Logger,
|
||||
// all built-in finders in the correct order, devs can then modify this list
|
||||
// on application startup via an application event handler.
|
||||
typeof(ContentFinderByPageIdQuery),
|
||||
@@ -411,9 +416,11 @@ namespace Umbraco.Web
|
||||
PublishedCache.XmlPublishedCache.PublishedContentCache.UnitTesting = _isForTesting;
|
||||
|
||||
ThumbnailProvidersResolver.Current = new ThumbnailProvidersResolver(
|
||||
ServiceProvider, LoggerResolver.Current.Logger,
|
||||
PluginManager.Current.ResolveThumbnailProviders());
|
||||
|
||||
ImageUrlProviderResolver.Current = new ImageUrlProviderResolver(
|
||||
ServiceProvider, LoggerResolver.Current.Logger,
|
||||
PluginManager.Current.ResolveImageUrlProviders());
|
||||
|
||||
CultureDictionaryFactoryResolver.Current = new CultureDictionaryFactoryResolver(
|
||||
|
||||
@@ -21,16 +21,8 @@ namespace Umbraco.Web.WebServices
|
||||
}
|
||||
|
||||
protected UmbracoHttpHandler(UmbracoContext umbracoContext)
|
||||
: this(LoggerResolver.Current.Logger, umbracoContext)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
protected UmbracoHttpHandler(ILogger logger, UmbracoContext umbracoContext)
|
||||
{
|
||||
if (logger == null) throw new ArgumentNullException("logger");
|
||||
if (umbracoContext == null) throw new ArgumentNullException("umbracoContext");
|
||||
Logger = logger;
|
||||
UmbracoContext = umbracoContext;
|
||||
Umbraco = new UmbracoHelper(umbracoContext);
|
||||
}
|
||||
@@ -43,7 +35,21 @@ namespace Umbraco.Web.WebServices
|
||||
get { return UmbracoContext.Application; }
|
||||
}
|
||||
|
||||
public ILogger Logger { get; private set; }
|
||||
/// <summary>
|
||||
/// Returns an ILogger
|
||||
/// </summary>
|
||||
public ILogger Logger
|
||||
{
|
||||
get { return ProfilingLogger.Logger; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a ProfilingLogger
|
||||
/// </summary>
|
||||
public ProfilingLogger ProfilingLogger
|
||||
{
|
||||
get { return UmbracoContext.Application.ProfilingLogger; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the current UmbracoContext
|
||||
|
||||
@@ -22,15 +22,8 @@ namespace Umbraco.Web.WebServices
|
||||
}
|
||||
|
||||
protected UmbracoWebService(UmbracoContext umbracoContext)
|
||||
: this(LoggerResolver.Current.Logger, umbracoContext)
|
||||
{
|
||||
}
|
||||
|
||||
protected UmbracoWebService(ILogger logger, UmbracoContext umbracoContext)
|
||||
{
|
||||
if (logger == null) throw new ArgumentNullException("logger");
|
||||
if (umbracoContext == null) throw new ArgumentNullException("umbracoContext");
|
||||
Logger = logger;
|
||||
UmbracoContext = umbracoContext;
|
||||
Umbraco = new UmbracoHelper(umbracoContext);
|
||||
}
|
||||
@@ -43,7 +36,21 @@ namespace Umbraco.Web.WebServices
|
||||
get { return UmbracoContext.Application; }
|
||||
}
|
||||
|
||||
public ILogger Logger { get; private set; }
|
||||
/// <summary>
|
||||
/// Returns an ILogger
|
||||
/// </summary>
|
||||
public ILogger Logger
|
||||
{
|
||||
get { return ProfilingLogger.Logger; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a ProfilingLogger
|
||||
/// </summary>
|
||||
public ProfilingLogger ProfilingLogger
|
||||
{
|
||||
get { return UmbracoContext.Application.ProfilingLogger; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the current UmbracoContext
|
||||
|
||||
@@ -62,7 +62,7 @@ namespace umbraco
|
||||
|
||||
public override void Render(ref XmlTree tree)
|
||||
{
|
||||
foreach (var sheet in Services.FileService.GetStylesheetsAtPath())
|
||||
foreach (var sheet in Services.FileService.GetStylesheets())
|
||||
{
|
||||
var xNode = XmlTreeNode.Create(this);
|
||||
xNode.NodeID = sheet.Alias;
|
||||
|
||||
Reference in New Issue
Block a user