Browse Source

Replace CombinedFileSystemProvider by CompositeFileProvider

pull/41/head
Kévin Chalet 11 years ago
parent
commit
625a7b9da7
  1. 54
      src/OpenIddict.Mvc/OpenIddictExtensions.cs
  2. 6
      src/OpenIddict.Mvc/project.json

54
src/OpenIddict.Mvc/OpenIddictExtensions.cs

@ -5,7 +5,6 @@
*/
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using Microsoft.AspNet.FileProviders;
@ -14,7 +13,6 @@ using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Mvc.ApplicationModels;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Internal;
using Microsoft.Extensions.Primitives;
using NWebsec.Middleware;
using OpenIddict;
@ -81,12 +79,11 @@ namespace Microsoft.AspNet.Builder {
.AddRazorOptions(options => {
// Update the Razor options to also use a combined provider that
// falls back to the current assembly when searching for views.
options.FileProvider = new CombinedFileSystemProvider(new[] {
options.FileProvider = new CompositeFileProvider(
options.FileProvider,
new EmbeddedFileProvider(
assembly: typeof(OpenIddictController<,>).GetTypeInfo().Assembly,
baseNamespace: "OpenIddict.Mvc")
});
baseNamespace: "OpenIddict.Mvc"));
});
// Register the sign-in manager in the isolated container.
@ -128,52 +125,5 @@ namespace Microsoft.AspNet.Builder {
controller.ControllerName = "OpenIddict";
}
}
private class CombinedFileSystemProvider : IFileProvider {
public CombinedFileSystemProvider(IList<IFileProvider> providers) {
Providers = providers;
}
public IList<IFileProvider> Providers { get; }
public IDirectoryContents GetDirectoryContents(string subpath) {
for (var index = 0; index < Providers.Count; index++) {
var provider = Providers[index];
var result = provider.GetDirectoryContents(subpath);
if (result != null && result.Exists) {
return result;
}
}
return new NotFoundDirectoryContents();
}
public IFileInfo GetFileInfo(string subpath) {
for (var index = 0; index < Providers.Count; index++) {
var provider = Providers[index];
var result = provider.GetFileInfo(subpath);
if (result != null && result.Exists) {
return result;
}
}
return new NotFoundFileInfo(subpath);
}
public IChangeToken Watch(string filter) {
for (var index = 0; index < Providers.Count; index++) {
var provider = Providers[index];
var result = provider.Watch(filter);
if (result != null) {
return result;
}
}
return NoopChangeToken.Singleton;
}
}
}
}

6
src/OpenIddict.Mvc/project.json

@ -8,14 +8,10 @@
"dependencies": {
"AspNet.Hosting.Extensions": "1.0.0-*",
"Microsoft.AspNet.FileProviders.Composite": "1.0.0-*",
"Microsoft.AspNet.FileProviders.Embedded": "1.0.0-*",
"Microsoft.AspNet.Mvc": "6.0.0-*",
"Microsoft.AspNet.FileProviders.Sources": {
"type": "build",
"version": "1.0.0-*"
},
"Microsoft.Extensions.NotNullAttribute.Sources": {
"type": "build",
"version": "1.0.0-*"

Loading…
Cancel
Save