From 98a171266e77310fbbb5a38d5f01660bbc8d77cb Mon Sep 17 00:00:00 2001 From: Shannon Deminick Date: Mon, 14 Jan 2013 03:04:09 +0300 Subject: [PATCH] Fixes PhysicalFileSystem to use IOHelper instead of HostingEnvironment. Removes all references to new IFileSystem's that canont be supported currently, leaving only the media file system. Updates all code to use PhysicalFileSystem in place of what 'could' eventually be an abstracted IFileSystem. Updates unit tests accordingly. --- src/Umbraco.Core/IO/PhysicalFileSystem.cs | 2 +- .../Repositories/MacroRepository.cs | 4 +-- .../Repositories/ScriptRepository.cs | 7 +++- .../Repositories/StylesheetRepository.cs | 8 ++++- .../Repositories/TemplateRepository.cs | 4 +-- src/Umbraco.Tests/Models/MacroTests.cs | 4 +-- .../Repositories/ScriptRepositoryTest.cs | 20 +++++------ .../Repositories/StylesheetRepositoryTest.cs | 18 +++++----- .../config/FileSystemProviders.Release.config | 30 +---------------- .../config/FileSystemProviders.config | 33 ------------------- src/Umbraco.Web/Mvc/SurfaceController.cs | 11 +++++-- 11 files changed, 48 insertions(+), 93 deletions(-) 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(); // }