From 96ace47a12148aa2ac6f04fb1c15555c8735ffe7 Mon Sep 17 00:00:00 2001 From: piedone Date: Thu, 29 Dec 2011 18:11:23 -0800 Subject: [PATCH] #18270: IVirtualPathProvider delete method Work Item: 18270 --HG-- branch : 1.x --- .../Descriptors/ShapeTemplateBindingStrategyTests.cs | 8 ++++++++ .../Descriptors/StylesheetBindingStrategyTests.cs | 8 ++++++++ src/Orchard.Tests/Stubs/StubVirtualPathProvider.cs | 8 ++++++++ .../VirtualPath/DefaultVirtualPathProvider.cs | 10 +++++++++- .../FileSystems/VirtualPath/IVirtualPathProvider.cs | 2 ++ 5 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/Orchard.Tests/DisplayManagement/Descriptors/ShapeTemplateBindingStrategyTests.cs b/src/Orchard.Tests/DisplayManagement/Descriptors/ShapeTemplateBindingStrategyTests.cs index b0c783b7a..7347dfb50 100644 --- a/src/Orchard.Tests/DisplayManagement/Descriptors/ShapeTemplateBindingStrategyTests.cs +++ b/src/Orchard.Tests/DisplayManagement/Descriptors/ShapeTemplateBindingStrategyTests.cs @@ -89,6 +89,10 @@ namespace Orchard.Tests.DisplayManagement.Descriptors { throw new NotImplementedException(); } + public void DeleteFile(string virtualPath) { + throw new NotImplementedException(); + } + public bool DirectoryExists(string virtualPath) { throw new NotImplementedException(); } @@ -97,6 +101,10 @@ namespace Orchard.Tests.DisplayManagement.Descriptors { throw new NotImplementedException(); } + public virtual void DeleteDirectory(string virtualPath) { + throw new NotImplementedException(); + } + public string GetDirectoryName(string virtualPath) { throw new NotImplementedException(); } diff --git a/src/Orchard.Tests/DisplayManagement/Descriptors/StylesheetBindingStrategyTests.cs b/src/Orchard.Tests/DisplayManagement/Descriptors/StylesheetBindingStrategyTests.cs index 1a4a982b1..d66d7868b 100644 --- a/src/Orchard.Tests/DisplayManagement/Descriptors/StylesheetBindingStrategyTests.cs +++ b/src/Orchard.Tests/DisplayManagement/Descriptors/StylesheetBindingStrategyTests.cs @@ -86,6 +86,10 @@ namespace Orchard.Tests.DisplayManagement.Descriptors { throw new NotImplementedException(); } + public void DeleteFile(string virtualPath) { + throw new NotImplementedException(); + } + public bool DirectoryExists(string virtualPath) { throw new NotImplementedException(); } @@ -98,6 +102,10 @@ namespace Orchard.Tests.DisplayManagement.Descriptors { throw new NotImplementedException(); } + public void DeleteDirectory(string virtualPath) { + throw new NotImplementedException(); + } + public IEnumerable ListFiles(string path) { return TestViewEngine.Keys.Select(o => o.ToString()); } diff --git a/src/Orchard.Tests/Stubs/StubVirtualPathProvider.cs b/src/Orchard.Tests/Stubs/StubVirtualPathProvider.cs index d1c4e86b6..f1f166131 100644 --- a/src/Orchard.Tests/Stubs/StubVirtualPathProvider.cs +++ b/src/Orchard.Tests/Stubs/StubVirtualPathProvider.cs @@ -78,6 +78,10 @@ namespace Orchard.Tests.Stubs { throw new NotImplementedException(); } + public void DeleteFile(string virtualPath) { + _fileSystem.DeleteFile(ToFileSystemPath(virtualPath)); + } + public bool DirectoryExists(string virtualPath) { return _fileSystem.GetDirectoryEntry(ToFileSystemPath(virtualPath)) != null; } @@ -86,6 +90,10 @@ namespace Orchard.Tests.Stubs { _fileSystem.CreateDirectoryEntry(ToFileSystemPath(virtualPath)); } + public void DeleteDirectory(string virtualPath) { + throw new NotImplementedException(); + } + public string GetDirectoryName(string virtualPath) { return Path.GetDirectoryName(virtualPath); } diff --git a/src/Orchard/FileSystems/VirtualPath/DefaultVirtualPathProvider.cs b/src/Orchard/FileSystems/VirtualPath/DefaultVirtualPathProvider.cs index 844dde656..85a295d1b 100644 --- a/src/Orchard/FileSystems/VirtualPath/DefaultVirtualPathProvider.cs +++ b/src/Orchard/FileSystems/VirtualPath/DefaultVirtualPathProvider.cs @@ -73,7 +73,7 @@ namespace Orchard.FileSystems.VirtualPath { /// Note: This method doesn't detect all cases of malformed paths, it merely checks /// for *some* cases of malformed paths, so this is not a replacement for full virtual path /// verification through VirtualPathUtilty methods. - /// In other wors, !IsMalformed does *not* imply "IsWellformed". + /// In other words, !IsMalformed does *not* imply "IsWellformed". /// public bool IsMalformedVirtualPath(string virtualPath) { if (string.IsNullOrEmpty(virtualPath)) @@ -137,6 +137,10 @@ namespace Orchard.FileSystems.VirtualPath { return HostingEnvironment.VirtualPathProvider.GetFileHash(virtualPath, dependencies); } + public virtual void DeleteFile(string virtualPath) { + File.Delete(MapPath(virtualPath)); + } + public virtual string MapPath(string virtualPath) { return HostingEnvironment.MapPath(virtualPath); } @@ -165,5 +169,9 @@ namespace Orchard.FileSystems.VirtualPath { public virtual void CreateDirectory(string virtualPath) { Directory.CreateDirectory(MapPath(virtualPath)); } + + public virtual void DeleteDirectory(string virtualPath) { + Directory.Delete(MapPath(virtualPath)); + } } } \ No newline at end of file diff --git a/src/Orchard/FileSystems/VirtualPath/IVirtualPathProvider.cs b/src/Orchard/FileSystems/VirtualPath/IVirtualPathProvider.cs index e507f0663..9891a5d39 100644 --- a/src/Orchard/FileSystems/VirtualPath/IVirtualPathProvider.cs +++ b/src/Orchard/FileSystems/VirtualPath/IVirtualPathProvider.cs @@ -17,10 +17,12 @@ namespace Orchard.FileSystems.VirtualPath { DateTime GetFileLastWriteTimeUtc(string virtualPath); string GetFileHash(string virtualPath); string GetFileHash(string virtualPath, IEnumerable dependencies); + void DeleteFile(string virtualPath); bool DirectoryExists(string virtualPath); void CreateDirectory(string virtualPath); string GetDirectoryName(string virtualPath); + void DeleteDirectory(string virtualPath); IEnumerable ListFiles(string path); IEnumerable ListDirectories(string path);