diff --git a/DNN Platform/DotNetNuke.Web.Mvc/DnnMvcControllerFactory.cs b/DNN Platform/DotNetNuke.Web.Mvc/DnnMvcControllerFactory.cs deleted file mode 100644 index b187ad97b41..00000000000 --- a/DNN Platform/DotNetNuke.Web.Mvc/DnnMvcControllerFactory.cs +++ /dev/null @@ -1,21 +0,0 @@ -using DotNetNuke.Common; -using System; -using System.Web.Mvc; -using System.Web.Routing; - -namespace DotNetNuke.Web.Mvc -{ - /// - /// DNN Specific MVC Controller Factory that attempts to use - /// Dependency Injection to include all dependencies on the - /// Controller. - /// - public class DnnMvcControllerFactory : DefaultControllerFactory, IControllerFactory - { - protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType) - { - var controller = (IController)Globals.DependencyProvider.GetService(controllerType); - return controller ?? base.GetControllerInstance(requestContext, controllerType); - } - } -} diff --git a/DNN Platform/DotNetNuke.Web.Mvc/DnnMvcDependencyResolver.cs b/DNN Platform/DotNetNuke.Web.Mvc/DnnMvcDependencyResolver.cs new file mode 100644 index 00000000000..55937e4e2fa --- /dev/null +++ b/DNN Platform/DotNetNuke.Web.Mvc/DnnMvcDependencyResolver.cs @@ -0,0 +1,71 @@ +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using System.Web.Mvc; + +namespace DotNetNuke.Web.Mvc +{ + /// + /// The implementation used in the + /// MVC Modules of DNN. + /// + internal class DnnMvcDependencyResolver : IDependencyResolver + { + private readonly IServiceProvider _serviceProvider; + private readonly IDependencyResolver _resolver; + + /// + /// Instantiate a new instance of the . + /// + /// + /// The to be used in the + /// + public DnnMvcDependencyResolver(IServiceProvider serviceProvider, IDependencyResolver resolver) + { + _serviceProvider = serviceProvider; + _resolver = resolver; + } + + /// + /// Returns the specified service from the scope + /// + /// + /// The service to be retrieved + /// + /// + /// The retrieved service + /// + public object GetService(Type serviceType) + { + try + { + return _serviceProvider.GetService(serviceType); + } + catch + { + return _resolver.GetService(serviceType); + } + } + + /// + /// Returns the specified services from the scope + /// + /// + /// The service to be retrieved + /// + /// + /// The retrieved service + /// + public IEnumerable GetServices(Type serviceType) + { + try + { + return _serviceProvider.GetServices(serviceType); + } + catch + { + return _resolver.GetServices(serviceType); + } + } + } +} diff --git a/DNN Platform/DotNetNuke.Web.Mvc/DotNetNuke.Web.Mvc.csproj b/DNN Platform/DotNetNuke.Web.Mvc/DotNetNuke.Web.Mvc.csproj index 10138b1eb7c..69bf2871dd8 100644 --- a/DNN Platform/DotNetNuke.Web.Mvc/DotNetNuke.Web.Mvc.csproj +++ b/DNN Platform/DotNetNuke.Web.Mvc/DotNetNuke.Web.Mvc.csproj @@ -116,8 +116,7 @@ - - + diff --git a/DNN Platform/DotNetNuke.Web.Mvc/Extensions/StartupExtensions.cs b/DNN Platform/DotNetNuke.Web.Mvc/Extensions/StartupExtensions.cs deleted file mode 100644 index f957c21d22d..00000000000 --- a/DNN Platform/DotNetNuke.Web.Mvc/Extensions/StartupExtensions.cs +++ /dev/null @@ -1,35 +0,0 @@ -using DotNetNuke.Web.Mvc.Framework.Controllers; -using DotNetNuke.DependencyInjection.Extensions; -using Microsoft.Extensions.DependencyInjection; -using System; -using System.Linq; - -namespace DotNetNuke.Web.Mvc.Extensions -{ - /// - /// Adds DNN MVC Specific startup extensions to simplify the - /// Class. - /// - internal static class StartupExtensions - { - /// - /// Configures all of the 's to be used - /// with the Service Collection for Dependency Injection. - /// - /// - /// Service Collection used to registering services in the container. - /// - public static void AddMvc(this IServiceCollection services) - { - var startuptypes = AppDomain.CurrentDomain.GetAssemblies() - .SelectMany(x => x.SafeGetTypes()) - .Where(x => typeof(IDnnController).IsAssignableFrom(x) && - x.IsClass && - !x.IsAbstract); - foreach (var controller in startuptypes) - { - services.AddTransient(controller); - } - } - } -} diff --git a/DNN Platform/DotNetNuke.Web.Mvc/Startup.cs b/DNN Platform/DotNetNuke.Web.Mvc/Startup.cs index b558760e47b..ad5ab585527 100644 --- a/DNN Platform/DotNetNuke.Web.Mvc/Startup.cs +++ b/DNN Platform/DotNetNuke.Web.Mvc/Startup.cs @@ -1,5 +1,5 @@ -using DotNetNuke.DependencyInjection; -using DotNetNuke.Web.Mvc.Extensions; +using DotNetNuke.Common; +using DotNetNuke.DependencyInjection; using Microsoft.Extensions.DependencyInjection; using System.Web.Mvc; @@ -9,9 +9,11 @@ public class Startup : IDnnStartup { public void ConfigureServices(IServiceCollection services) { - services.AddMvc(); - services.AddSingleton(); + services.AddSingleton(serviceProvider => ControllerBuilder.Current.GetControllerFactory()); services.AddSingleton(); + + IDependencyResolver resolver = new DnnMvcDependencyResolver(Globals.DependencyProvider, DependencyResolver.Current); + DependencyResolver.SetResolver(resolver); } } } diff --git a/DNN Platform/Website/Providers/DataProviders/SqlDataProvider/09.04.04.SqlDataProvider b/DNN Platform/Website/Providers/DataProviders/SqlDataProvider/09.04.04.SqlDataProvider new file mode 100644 index 00000000000..4412108fcf0 --- /dev/null +++ b/DNN Platform/Website/Providers/DataProviders/SqlDataProvider/09.04.04.SqlDataProvider @@ -0,0 +1,9 @@ +/************************************************************/ +/***** SqlDataProvider *****/ +/***** *****/ +/***** *****/ +/***** Note: To manually execute this script you must *****/ +/***** perform a search and replace operation *****/ +/***** for {databaseOwner} and {objectQualifier} *****/ +/***** *****/ +/************************************************************/ \ No newline at end of file diff --git a/Dnn.AdminExperience/Extensions/Content/Dnn.PersonaBar.Extensions/Components/Security/Resources/sums.resources b/Dnn.AdminExperience/Extensions/Content/Dnn.PersonaBar.Extensions/Components/Security/Resources/sums.resources index 7d8f59a8ab2..340040ec72a 100644 --- a/Dnn.AdminExperience/Extensions/Content/Dnn.PersonaBar.Extensions/Components/Security/Resources/sums.resources +++ b/Dnn.AdminExperience/Extensions/Content/Dnn.PersonaBar.Extensions/Components/Security/Resources/sums.resources @@ -76,6 +76,7 @@ + @@ -158,6 +159,7 @@ + @@ -197,4 +199,5 @@ +