diff --git a/src/Umbraco.Core/IO/PhysicalFileSystem.cs b/src/Umbraco.Core/IO/PhysicalFileSystem.cs index 0682e6d61f..c7f9f734b8 100644 --- a/src/Umbraco.Core/IO/PhysicalFileSystem.cs +++ b/src/Umbraco.Core/IO/PhysicalFileSystem.cs @@ -18,7 +18,7 @@ namespace Umbraco.Core.IO public PhysicalFileSystem(string virtualRoot) { - RootPath = System.Web.Hosting.HostingEnvironment.MapPath(virtualRoot); + RootPath = IOHelper.MapPath(virtualRoot); _rootUrl = VirtualPathUtility.ToAbsolute(virtualRoot); } diff --git a/src/Umbraco.Core/Persistence/Repositories/MacroRepository.cs b/src/Umbraco.Core/Persistence/Repositories/MacroRepository.cs index 72345c19e0..8f7c4ce1c6 100644 --- a/src/Umbraco.Core/Persistence/Repositories/MacroRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/MacroRepository.cs @@ -33,8 +33,8 @@ namespace Umbraco.Core.Persistence.Repositories } private void EnsureDependencies() - { - _fileSystem = FileSystemProviderManager.Current.GetFileSystemProvider("macros"); + { + _fileSystem = new PhysicalFileSystem("~/App_Data/Macros"); var serviceStackSerializer = new ServiceStackJsonSerializer(); _serializationService = new SerializationService(serviceStackSerializer); } diff --git a/src/Umbraco.Core/Persistence/Repositories/ScriptRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ScriptRepository.cs index dba1db3b53..242f8293e9 100644 --- a/src/Umbraco.Core/Persistence/Repositories/ScriptRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/ScriptRepository.cs @@ -14,8 +14,13 @@ namespace Umbraco.Core.Persistence.Repositories /// internal class ScriptRepository : FileRepository, IScriptRepository { + public ScriptRepository(IUnitOfWork work, IFileSystem fileSystem) + : base(work, fileSystem) + { + } + public ScriptRepository(IUnitOfWork work) - : base(work, FileSystemProviderManager.Current.GetFileSystemProvider("scripts")) + : this(work, new PhysicalFileSystem(SystemDirectories.Scripts)) { } diff --git a/src/Umbraco.Core/Persistence/Repositories/StylesheetRepository.cs b/src/Umbraco.Core/Persistence/Repositories/StylesheetRepository.cs index f9dc30e0ff..c100ae9290 100644 --- a/src/Umbraco.Core/Persistence/Repositories/StylesheetRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/StylesheetRepository.cs @@ -14,8 +14,14 @@ namespace Umbraco.Core.Persistence.Repositories /// internal class StylesheetRepository : FileRepository, IStylesheetRepository { + public StylesheetRepository(IUnitOfWork work, IFileSystem fileSystem) + : base(work, fileSystem) + { + + } + public StylesheetRepository(IUnitOfWork work) - : base(work, FileSystemProviderManager.Current.GetFileSystemProvider("stylesheets")) + : this(work, new PhysicalFileSystem(SystemDirectories.Css)) { } diff --git a/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs b/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs index 1be95d47aa..372f0571a0 100644 --- a/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs @@ -44,8 +44,8 @@ namespace Umbraco.Core.Persistence.Repositories private void EnsureDepedencies() { - _masterpagesFileSystem = FileSystemProviderManager.Current.GetFileSystemProvider("masterpages"); - _viewsFileSystem = FileSystemProviderManager.Current.GetFileSystemProvider("views"); + _masterpagesFileSystem = new PhysicalFileSystem(SystemDirectories.Masterpages); + _viewsFileSystem = new PhysicalFileSystem(SystemDirectories.MvcViews); } #region Overrides of RepositoryBase diff --git a/src/Umbraco.Tests/Models/MacroTests.cs b/src/Umbraco.Tests/Models/MacroTests.cs index 68d3e1b1d5..c45b20f329 100644 --- a/src/Umbraco.Tests/Models/MacroTests.cs +++ b/src/Umbraco.Tests/Models/MacroTests.cs @@ -94,7 +94,7 @@ namespace Umbraco.Tests.Models // Arrange var serviceStackSerializer = new ServiceStackJsonSerializer(); var serializationService = new SerializationService(serviceStackSerializer); - var fileSystem = FileSystemProviderManager.Current.GetFileSystemProvider("macros"); + var fileSystem = new PhysicalFileSystem("~/App_Data/Macros"); var macro = new Macro { @@ -128,7 +128,7 @@ namespace Umbraco.Tests.Models // Arrange var serviceStackSerializer = new ServiceStackJsonSerializer(); var serializationService = new SerializationService(serviceStackSerializer); - var fileSystem = FileSystemProviderManager.Current.GetFileSystemProvider("macros"); + var fileSystem = new PhysicalFileSystem("~/App_Data/Macros"); var macro = new Macro { diff --git a/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs index 3069196cd9..50de94d5ad 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs @@ -17,7 +17,7 @@ namespace Umbraco.Tests.Persistence.Repositories [SetUp] public void Initialize() { - _fileSystem = FileSystemProviderManager.Current.GetFileSystemProvider("scripts"); + _fileSystem = new PhysicalFileSystem(SystemDirectories.Scripts, "/scripts"); var stream = CreateStream("Umbraco.Sys.registerNamespace(\"Umbraco.Utils\");"); _fileSystem.AddFile("test-script.js", stream); } @@ -30,7 +30,7 @@ namespace Umbraco.Tests.Persistence.Repositories var unitOfWork = provider.GetUnitOfWork(); // Act - var repository = new ScriptRepository(unitOfWork); + var repository = new ScriptRepository(unitOfWork, _fileSystem); // Assert Assert.That(repository, Is.Not.Null); @@ -42,7 +42,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new FileUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new ScriptRepository(unitOfWork); + var repository = new ScriptRepository(unitOfWork, _fileSystem); // Act var script = new Script("test-add-script.js") {Content = "/// "}; @@ -59,7 +59,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new FileUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new ScriptRepository(unitOfWork); + var repository = new ScriptRepository(unitOfWork, _fileSystem); // Act var script = new Script("test-updated-script.js") { Content = "/// " }; @@ -83,7 +83,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new FileUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new ScriptRepository(unitOfWork); + var repository = new ScriptRepository(unitOfWork, _fileSystem); // Act var script = repository.Get("test-script.js"); @@ -100,7 +100,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new FileUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new ScriptRepository(unitOfWork); + var repository = new ScriptRepository(unitOfWork, _fileSystem); // Act var exists = repository.Get("test-script.js"); @@ -117,7 +117,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new FileUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new ScriptRepository(unitOfWork); + var repository = new ScriptRepository(unitOfWork, _fileSystem); var script = new Script("test-script1.js") { Content = "/// " }; repository.AddOrUpdate(script); @@ -143,7 +143,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new FileUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new ScriptRepository(unitOfWork); + var repository = new ScriptRepository(unitOfWork, _fileSystem); var script = new Script("test-script1.js") { Content = "/// " }; repository.AddOrUpdate(script); @@ -169,7 +169,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new FileUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new ScriptRepository(unitOfWork); + var repository = new ScriptRepository(unitOfWork, _fileSystem); // Act var exists = repository.Exists("test-script.js"); @@ -183,7 +183,7 @@ namespace Umbraco.Tests.Persistence.Repositories { _fileSystem = null; //Delete all files - var fs = FileSystemProviderManager.Current.GetFileSystemProvider("scripts"); + var fs = new PhysicalFileSystem(SystemDirectories.Scripts, "/scripts"); var files = fs.GetFiles("", "*.js"); foreach (var file in files) { diff --git a/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs index 0b18cb253f..4fc4cccc57 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs @@ -17,7 +17,7 @@ namespace Umbraco.Tests.Persistence.Repositories [SetUp] public void Initialize() { - _fileSystem = FileSystemProviderManager.Current.GetFileSystemProvider("stylesheets"); + _fileSystem = new PhysicalFileSystem(SystemDirectories.Css, "/css"); var stream = CreateStream("body {background:#EE7600; color:#FFF;}"); _fileSystem.AddFile("styles.css", stream); } @@ -30,7 +30,7 @@ namespace Umbraco.Tests.Persistence.Repositories var unitOfWork = provider.GetUnitOfWork(); // Act - var repository = new StylesheetRepository(unitOfWork); + var repository = new StylesheetRepository(unitOfWork, _fileSystem); // Assert Assert.That(repository, Is.Not.Null); @@ -42,7 +42,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new FileUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new StylesheetRepository(unitOfWork); + var repository = new StylesheetRepository(unitOfWork, _fileSystem); // Act var stylesheet = new Stylesheet("test-add.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" }; @@ -59,7 +59,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new FileUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new StylesheetRepository(unitOfWork); + var repository = new StylesheetRepository(unitOfWork, _fileSystem); // Act var stylesheet = new Stylesheet("test-update.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" }; @@ -85,7 +85,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new FileUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new StylesheetRepository(unitOfWork); + var repository = new StylesheetRepository(unitOfWork, _fileSystem); // Act var stylesheet = new Stylesheet("test-delete.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" }; @@ -105,7 +105,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new FileUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new StylesheetRepository(unitOfWork); + var repository = new StylesheetRepository(unitOfWork, _fileSystem); // Act var stylesheet = repository.Get("styles.css"); @@ -123,7 +123,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new FileUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new StylesheetRepository(unitOfWork); + var repository = new StylesheetRepository(unitOfWork, _fileSystem); var stylesheet = new Stylesheet("styles-v2.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" }; repository.AddOrUpdate(stylesheet); @@ -145,7 +145,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new FileUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new StylesheetRepository(unitOfWork); + var repository = new StylesheetRepository(unitOfWork, _fileSystem); var stylesheet = new Stylesheet("styles-v2.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" }; repository.AddOrUpdate(stylesheet); @@ -167,7 +167,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new FileUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new StylesheetRepository(unitOfWork); + var repository = new StylesheetRepository(unitOfWork, _fileSystem); // Act var exists = repository.Exists("styles.css"); diff --git a/src/Umbraco.Web.UI/config/FileSystemProviders.Release.config b/src/Umbraco.Web.UI/config/FileSystemProviders.Release.config index de62e423b1..fb701736c0 100644 --- a/src/Umbraco.Web.UI/config/FileSystemProviders.Release.config +++ b/src/Umbraco.Web.UI/config/FileSystemProviders.Release.config @@ -7,33 +7,5 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/src/Umbraco.Web.UI/config/FileSystemProviders.config b/src/Umbraco.Web.UI/config/FileSystemProviders.config index 527a073ac4..457259fae9 100644 --- a/src/Umbraco.Web.UI/config/FileSystemProviders.config +++ b/src/Umbraco.Web.UI/config/FileSystemProviders.config @@ -7,38 +7,5 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Umbraco.Web/Mvc/SurfaceController.cs b/src/Umbraco.Web/Mvc/SurfaceController.cs index ee4cc7c3ec..afa618e592 100644 --- a/src/Umbraco.Web/Mvc/SurfaceController.cs +++ b/src/Umbraco.Web/Mvc/SurfaceController.cs @@ -15,7 +15,7 @@ namespace Umbraco.Web.Mvc // //return Content("hello"); // } - // public ActionResult PostVals(string name) + // public ActionResult PostVals(TestFormModel model) // { // ModelState.AddModelError("name", "bad name!"); // return CurrentUmbracoPage(); @@ -28,6 +28,11 @@ namespace Umbraco.Web.Mvc // } //} + //public class TestFormModel + //{ + // public string Name { get; set; } + //} + //public class LocalSurfaceController : SurfaceController //{ // public ActionResult Index() @@ -35,9 +40,9 @@ namespace Umbraco.Web.Mvc // return View(); // } - // public ActionResult PostVals([Bind(Prefix = "blah")]string name) + // public ActionResult PostVals([Bind(Prefix = "blah")]TestFormModel model) // { - // ModelState.AddModelError("name", "you suck!"); + // ModelState.AddModelError("Name", "you suck!"); // return this.RedirectToCurrentUmbracoPage(); // }