From d8a95c731b469ddaab5cbcecb31654ffc2e9a428 Mon Sep 17 00:00:00 2001 From: Jass Bagga Date: Thu, 13 Apr 2017 13:35:35 -0700 Subject: [PATCH] Move RazorViewEngineOptionsSetup to internal namespace (#6125) Addresses #6116 --- .../Internal/RazorViewEngineOptionsSetup.cs | 71 +++++++++++++++++++ .../RazorViewEngineOptionsSetup.cs | 64 ----------------- .../RazorViewEngineOptionsSetupTest.cs | 3 +- 3 files changed, 72 insertions(+), 66 deletions(-) create mode 100644 src/Microsoft.AspNetCore.Mvc.Razor/Internal/RazorViewEngineOptionsSetup.cs delete mode 100644 src/Microsoft.AspNetCore.Mvc.Razor/RazorViewEngineOptionsSetup.cs rename test/Microsoft.AspNetCore.Mvc.Razor.Test/{ => Internal}/RazorViewEngineOptionsSetupTest.cs (97%) diff --git a/src/Microsoft.AspNetCore.Mvc.Razor/Internal/RazorViewEngineOptionsSetup.cs b/src/Microsoft.AspNetCore.Mvc.Razor/Internal/RazorViewEngineOptionsSetup.cs new file mode 100644 index 0000000000..593db1b7b9 --- /dev/null +++ b/src/Microsoft.AspNetCore.Mvc.Razor/Internal/RazorViewEngineOptionsSetup.cs @@ -0,0 +1,71 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Linq; +using Microsoft.AspNetCore.Hosting; +using Microsoft.CodeAnalysis; +using Microsoft.Extensions.Options; + +namespace Microsoft.AspNetCore.Mvc.Razor.Internal +{ + /// + /// Sets up default options for . + /// + public class RazorViewEngineOptionsSetup : IConfigureOptions + { + private readonly IHostingEnvironment _hostingEnvironment; + + /// + /// Initializes a new instance of . + /// + /// for the application. + public RazorViewEngineOptionsSetup(IHostingEnvironment hostingEnvironment) + { + if (hostingEnvironment == null) + { + throw new ArgumentNullException(nameof(hostingEnvironment)); + } + + _hostingEnvironment = hostingEnvironment; + } + + public void Configure(RazorViewEngineOptions options) + { + if (options == null) + { + throw new ArgumentNullException(nameof(options)); + } + + if (_hostingEnvironment.ContentRootFileProvider != null) + { + options.FileProviders.Add(_hostingEnvironment.ContentRootFileProvider); + } + + var compilationOptions = options.CompilationOptions; + string configurationSymbol; + + if (_hostingEnvironment.IsDevelopment()) + { + configurationSymbol = "DEBUG"; + options.CompilationOptions = compilationOptions.WithOptimizationLevel(OptimizationLevel.Debug); + } + else + { + configurationSymbol = "RELEASE"; + options.CompilationOptions = compilationOptions.WithOptimizationLevel(OptimizationLevel.Release); + } + + var parseOptions = options.ParseOptions; + options.ParseOptions = parseOptions.WithPreprocessorSymbols( + parseOptions.PreprocessorSymbolNames.Concat(new[] { configurationSymbol })); + + options.ViewLocationFormats.Add("/Views/{1}/{0}" + RazorViewEngine.ViewExtension); + options.ViewLocationFormats.Add("/Views/Shared/{0}" + RazorViewEngine.ViewExtension); + + options.AreaViewLocationFormats.Add("/Areas/{2}/Views/{1}/{0}" + RazorViewEngine.ViewExtension); + options.AreaViewLocationFormats.Add("/Areas/{2}/Views/Shared/{0}" + RazorViewEngine.ViewExtension); + options.AreaViewLocationFormats.Add("/Views/Shared/{0}" + RazorViewEngine.ViewExtension); + } + } +} \ No newline at end of file diff --git a/src/Microsoft.AspNetCore.Mvc.Razor/RazorViewEngineOptionsSetup.cs b/src/Microsoft.AspNetCore.Mvc.Razor/RazorViewEngineOptionsSetup.cs deleted file mode 100644 index 271e8ed5e3..0000000000 --- a/src/Microsoft.AspNetCore.Mvc.Razor/RazorViewEngineOptionsSetup.cs +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Linq; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Mvc.Razor; -using Microsoft.CodeAnalysis; -using Microsoft.Extensions.Options; - -namespace Microsoft.AspNetCore.Mvc -{ - /// - /// Sets up default options for . - /// - [Obsolete("This type is for internal use and will be removed in a future version.")] - public class RazorViewEngineOptionsSetup : ConfigureOptions - { - /// - /// Initializes a new instance of . - /// - /// for the application. - public RazorViewEngineOptionsSetup( - IHostingEnvironment hostingEnvironment) - : base(options => ConfigureRazor(options, hostingEnvironment)) - { - } - - private static void ConfigureRazor( - RazorViewEngineOptions razorOptions, - IHostingEnvironment hostingEnvironment) - { - if (hostingEnvironment.ContentRootFileProvider != null) - { - razorOptions.FileProviders.Add(hostingEnvironment.ContentRootFileProvider); - } - - var compilationOptions = razorOptions.CompilationOptions; - string configurationSymbol; - - if (hostingEnvironment.IsDevelopment()) - { - configurationSymbol = "DEBUG"; - razorOptions.CompilationOptions = compilationOptions.WithOptimizationLevel(OptimizationLevel.Debug); - } - else - { - configurationSymbol = "RELEASE"; - razorOptions.CompilationOptions = compilationOptions.WithOptimizationLevel(OptimizationLevel.Release); - } - - var parseOptions = razorOptions.ParseOptions; - razorOptions.ParseOptions = parseOptions.WithPreprocessorSymbols( - parseOptions.PreprocessorSymbolNames.Concat(new[] { configurationSymbol })); - - razorOptions.ViewLocationFormats.Add("/Views/{1}/{0}" + RazorViewEngine.ViewExtension); - razorOptions.ViewLocationFormats.Add("/Views/Shared/{0}" + RazorViewEngine.ViewExtension); - - razorOptions.AreaViewLocationFormats.Add("/Areas/{2}/Views/{1}/{0}" + RazorViewEngine.ViewExtension); - razorOptions.AreaViewLocationFormats.Add("/Areas/{2}/Views/Shared/{0}" + RazorViewEngine.ViewExtension); - razorOptions.AreaViewLocationFormats.Add("/Views/Shared/{0}" + RazorViewEngine.ViewExtension); - } - } -} \ No newline at end of file diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Test/RazorViewEngineOptionsSetupTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/RazorViewEngineOptionsSetupTest.cs similarity index 97% rename from test/Microsoft.AspNetCore.Mvc.Razor.Test/RazorViewEngineOptionsSetupTest.cs rename to test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/RazorViewEngineOptionsSetupTest.cs index 12dbd0ed45..d6824057c0 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.Test/RazorViewEngineOptionsSetupTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/RazorViewEngineOptionsSetupTest.cs @@ -2,13 +2,12 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Mvc.Razor; using Microsoft.CodeAnalysis; using Microsoft.Extensions.FileProviders; using Moq; using Xunit; -namespace Microsoft.AspNetCore.Mvc +namespace Microsoft.AspNetCore.Mvc.Razor.Internal { public class RazorViewEngineOptionsSetupTest {