Browse Source

Simplify EmbeddedFileSet.

pull/179/head
Halil İbrahim Kalkan 9 years ago
parent
commit
c667f9372e
  1. 1
      src/AbpDesk/AbpDesk.MongoBlog/AbpDesk/Blogging/AbpDeskMongoBlogModule.cs
  2. BIN
      src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll
  3. 1
      src/Volo.Abp.Account.Web/AbpAccountWebModule.cs
  4. 1
      src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/AbpAspNetCoreMvcUiBootstrapModule.cs
  5. 1
      src/Volo.Abp.AspNetCore.Mvc.UI/AbpAspNetCoreMvcUiModule.cs
  6. 1
      src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs
  7. 23
      src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedFileSet.cs
  8. 3
      test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/EmbeddedFileManager_Tests.cs

1
src/AbpDesk/AbpDesk.MongoBlog/AbpDesk/Blogging/AbpDeskMongoBlogModule.cs

@ -28,7 +28,6 @@ namespace AbpDesk.Blogging
{ {
options.FileSets.Add( options.FileSets.Add(
new EmbeddedFileSet( new EmbeddedFileSet(
"/",
GetType().Assembly, GetType().Assembly,
"" //TODO: This is not tested yet! "" //TODO: This is not tested yet!
) )

BIN
src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll

Binary file not shown.

1
src/Volo.Abp.Account.Web/AbpAccountWebModule.cs

@ -21,7 +21,6 @@ namespace Volo.Abp.Account.Web
{ {
options.FileSets.Add( options.FileSets.Add(
new EmbeddedFileSet( new EmbeddedFileSet(
"/",
GetType().Assembly, GetType().Assembly,
"Volo.Abp.Account.Web" "Volo.Abp.Account.Web"
) )

1
src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/AbpAspNetCoreMvcUiBootstrapModule.cs

@ -19,7 +19,6 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap
{ {
options.FileSets.Add( options.FileSets.Add(
new EmbeddedFileSet( new EmbeddedFileSet(
"/",
GetType().Assembly, GetType().Assembly,
"Volo.Abp.AspNetCore.Mvc.UI.Bootstrap" "Volo.Abp.AspNetCore.Mvc.UI.Bootstrap"
) )

1
src/Volo.Abp.AspNetCore.Mvc.UI/AbpAspNetCoreMvcUiModule.cs

@ -19,7 +19,6 @@ namespace Volo.Abp.AspNetCore.Mvc
{ {
options.FileSets.Add( options.FileSets.Add(
new EmbeddedFileSet( new EmbeddedFileSet(
"/",
GetType().Assembly, GetType().Assembly,
"Volo.Abp.AspNetCore.Mvc" "Volo.Abp.AspNetCore.Mvc"
) )

1
src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs

@ -27,7 +27,6 @@ namespace Volo.Abp.Identity.Web
{ {
options.FileSets.Add( options.FileSets.Add(
new EmbeddedFileSet( new EmbeddedFileSet(
"/",
GetType().Assembly, GetType().Assembly,
"Volo.Abp.Identity.Web" "Volo.Abp.Identity.Web"
) )

23
src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedFileSet.cs

@ -3,23 +3,25 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using JetBrains.Annotations;
using Microsoft.Extensions.FileProviders; using Microsoft.Extensions.FileProviders;
namespace Volo.Abp.VirtualFileSystem.Embedded namespace Volo.Abp.VirtualFileSystem.Embedded
{ {
public class EmbeddedFileSet : IVirtualFileSet public class EmbeddedFileSet : IVirtualFileSet
{ {
public string RootPath { get; } [NotNull]
public Assembly Assembly { get; } public Assembly Assembly { get; }
public string ResourceNamespace { get; } [CanBeNull]
public string BaseNamespace { get; }
public EmbeddedFileSet(string rootPath, Assembly assembly, string resourceNamespace) public EmbeddedFileSet([NotNull] Assembly assembly, string baseNamespace)
{ {
RootPath = rootPath.EnsureEndsWith('/'); Check.NotNull(assembly, nameof(assembly));
Assembly = assembly; Assembly = assembly;
ResourceNamespace = resourceNamespace; BaseNamespace = baseNamespace;
} }
public void AddFiles(Dictionary<string, IFileInfo> files) public void AddFiles(Dictionary<string, IFileInfo> files)
@ -28,12 +30,12 @@ namespace Volo.Abp.VirtualFileSystem.Embedded
foreach (var resourcePath in Assembly.GetManifestResourceNames()) foreach (var resourcePath in Assembly.GetManifestResourceNames())
{ {
if (!resourcePath.StartsWith(ResourceNamespace)) if (!BaseNamespace.IsNullOrEmpty() && !resourcePath.StartsWith(BaseNamespace))
{ {
continue; continue;
} }
var fullPath = RootPath + ConvertToRelativePath(resourcePath); var fullPath = ConvertToRelativePath(resourcePath).EnsureStartsWith('/');
if (fullPath.Contains("/")) if (fullPath.Contains("/"))
{ {
@ -92,7 +94,10 @@ namespace Volo.Abp.VirtualFileSystem.Embedded
private string ConvertToRelativePath(string resourceName) private string ConvertToRelativePath(string resourceName)
{ {
resourceName = resourceName.Substring(ResourceNamespace.Length + 1); if (!BaseNamespace.IsNullOrEmpty())
{
resourceName = resourceName.Substring(BaseNamespace.Length + 1);
}
var pathParts = resourceName.Split('.'); var pathParts = resourceName.Split('.');
if (pathParts.Length <= 2) if (pathParts.Length <= 2)

3
test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/EmbeddedFileManager_Tests.cs

@ -23,7 +23,7 @@ namespace Volo.Abp.VirtualFileSystem
public void Should_Define_And_Get_Embedded_Resources() public void Should_Define_And_Get_Embedded_Resources()
{ {
//Act //Act
var resource = _embeddedFileManager.GetFileInfo("/MyApp/MyResources/js/jquery-3.1.1.min.js"); var resource = _embeddedFileManager.GetFileInfo("/js/jquery-3.1.1.min.js");
//Assert //Assert
resource.ShouldNotBeNull(); resource.ShouldNotBeNull();
@ -44,7 +44,6 @@ namespace Volo.Abp.VirtualFileSystem
{ {
options.FileSets.Add( options.FileSets.Add(
new EmbeddedFileSet( new EmbeddedFileSet(
"/MyApp/MyResources/",
GetType().Assembly, GetType().Assembly,
"Volo.Abp.VirtualFileSystem.MyResources" "Volo.Abp.VirtualFileSystem.MyResources"
) )

Loading…
Cancel
Save